Skip to content

Commit

Permalink
PR #177: Start a new line on genvar
Browse files Browse the repository at this point in the history
Fixes #151.

GitHub PR #177

Copybara import of the project:

  - 8b4632c Start a new line on genvar by Rafal Kapuscik <rkapuscik@antmicro.com>

Closes #177

PiperOrigin-RevId: 293252505
  • Loading branch information
hzeller committed Feb 5, 2020
1 parent 35ba169 commit 2b217b6
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 0 deletions.
44 changes: 44 additions & 0 deletions verilog/formatting/formatter_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,50 @@ static const std::initializer_list<FormatterTestCase> kFormatterTestCases = {
" end\n"
"endmodule\n",
},
{
// standalone genvar statement
"module m ;"
"genvar f;"
"for(f=0; f<N; f ++ )begin "
"end endmodule",
"module m;\n"
" genvar f;\n"
" for (f = 0; f < N; f++) begin\n"
" end\n"
"endmodule\n",
},
{
// multiple arguments to genvar statement
"module m ;"
"genvar f, g;"
"for(f=0; f<N; f ++ )begin "
"end for(g=N; g>0; g -- )begin "
"end endmodule",
"module m;\n"
" genvar f, g;\n"
" for (f = 0; f < N; f++) begin\n"
" end\n"
" for (g = N; g > 0; g--) begin\n"
" end\n"
"endmodule\n",
},
{
// multiple genvar statements
"module m ;"
"genvar f;"
"genvar g;"
"for(f=0; f<N; f ++ )begin "
"end for(g=N; g>0; g -- )begin "
"end endmodule",
"module m;\n"
" genvar f;\n"
" genvar g;\n"
" for (f = 0; f < N; f++) begin\n"
" end\n"
" for (g = N; g > 0; g--) begin\n"
" end\n"
"endmodule\n",
},
{
"module event_control ;"
"always@ ( posedge clk )z<=y;"
Expand Down
1 change: 1 addition & 0 deletions verilog/formatting/tree_unwrapper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@ void TreeUnwrapper::Visit(const verible::SyntaxTreeNode& node) {
case NodeEnum::kParamDeclaration:
case NodeEnum::kClockingDeclaration:
case NodeEnum::kClockingItem:
case NodeEnum::kGenvarDeclaration:
case NodeEnum::kDescriptionList:
case NodeEnum::kForwardDeclaration: {
VisitNewUnwrappedLine(node);
Expand Down
69 changes: 69 additions & 0 deletions verilog/formatting/tree_unwrapper_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1101,6 +1101,75 @@ const TreeUnwrapperTestData kUnwrapModuleTestCases[] = {
L(0, {"endmodule"}),
},

{
"module with standalone genvar statement",
"module loop_standalone_genvar;\n"
"genvar i;"
"for (i=1;i<N;++i) begin\n"
"end\n"
"endmodule",
ModuleHeader(0, L(0, {"module", "loop_standalone_genvar", ";"})),
ModuleItemList(
1, L(1, {"genvar", "i", ";"}),
LoopHeader(1, L(1, {"for", "("}),
ForSpec(3, L(3, {"i", "=", "1", ";"}),
L(3, {"i", "<", "N", ";"}), L(3, {"++", "i"})),
L(1, {")", "begin"})),
L(1, {"end"})),
L(0, {"endmodule"}),
},

{
"module with multiple arguments to genvar statement",
"module loop_multiarg_genvar;\n"
"genvar i,j;"
"for (i=1;i<N;++i) begin\n"
"end\n"
"for (j=N;j>0;--j) begin\n"
"end\n"
"endmodule",
ModuleHeader(0, L(0, {"module", "loop_multiarg_genvar", ";"})),
ModuleItemList(
1, L(1, {"genvar", "i", ",", "j", ";"}),
LoopHeader(1, L(1, {"for", "("}),
ForSpec(3, L(3, {"i", "=", "1", ";"}),
L(3, {"i", "<", "N", ";"}), L(3, {"++", "i"})),
L(1, {")", "begin"})),
L(1, {"end"}),
LoopHeader(1, L(1, {"for", "("}),
ForSpec(3, L(3, {"j", "=", "N", ";"}),
L(3, {"j", ">", "0", ";"}), L(3, {"--", "j"})),
L(1, {")", "begin"})),
L(1, {"end"})),
L(0, {"endmodule"}),
},

{
"module with multiple genvar statements",
"module loop_multi_genvar;\n"
"genvar i;"
"genvar j;"
"for (i=1;i<N;++i) begin\n"
"end\n"
"for (j=N;j>0;--j) begin\n"
"end\n"
"endmodule",
ModuleHeader(0, L(0, {"module", "loop_multi_genvar", ";"})),
ModuleItemList(
1, L(1, {"genvar", "i", ";"}), L(1, {"genvar", "j", ";"}),
LoopHeader(1, L(1, {"for", "("}),
ForSpec(3, L(3, {"i", "=", "1", ";"}),
L(3, {"i", "<", "N", ";"}), L(3, {"++", "i"})),
L(1, {")", "begin"})),
L(1, {"end"}),
LoopHeader(1, L(1, {"for", "("}),
ForSpec(3, L(3, {"j", "=", "N", ";"}),
L(3, {"j", ">", "0", ";"}), L(3, {"--", "j"})),
L(1, {")", "begin"})),
L(1, {"end"})),
L(0, {"endmodule"}),
},

{
"module with multiple loop generate statements",
"module loop_generates;\n"
Expand Down

0 comments on commit 2b217b6

Please sign in to comment.