// Copyright 2017-2020 The Verible Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Test cases in this file should be *insensitive* to wrapping penalties.
// Penalty-sensitive tests belong in formatter_tuning_test.cc.
// Methods for keeping tests penalty insensitive:
//   * Short lines and partitions.  Lines that fit need no wrapping.
//   * Forced line breaks using //comments (reduce decision-making)

#include "verilog/formatting/formatter.h"

#include <memory>
#include <sstream>
#include <string>
#include <vector>

#include "absl/status/status.h"
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
#include "common/formatting/align.h"
#include "common/strings/display_utils.h"
#include "common/strings/position.h"
#include "common/text/text_structure.h"
#include "common/util/logging.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "verilog/analysis/verilog_analyzer.h"
#include "verilog/formatting/format_style.h"

#undef EXPECT_OK
#define EXPECT_OK(value) EXPECT_TRUE((value).ok())

#undef ASSERT_OK
#define ASSERT_OK(value) ASSERT_TRUE((value).ok())

namespace verilog {
namespace formatter {

// private, extern function in formatter.cc, directly tested here.
absl::Status VerifyFormatting(const verible::TextStructureView& text_structure,
                              absl::string_view formatted_output,
                              absl::string_view filename);

namespace {

static constexpr VerilogPreprocess::Config kDefaultPreprocess;

using absl::StatusCode;
using testing::HasSubstr;
using verible::AlignmentPolicy;
using verible::IndentationStyle;
using verible::LineNumberSet;

// Tests that clean output passes.
TEST(VerifyFormattingTest, NoError) {
  const absl::string_view code("class c;endclass\n");
  const std::unique_ptr<VerilogAnalyzer> analyzer =
      VerilogAnalyzer::AnalyzeAutomaticMode(code, "<file>", kDefaultPreprocess);
  const auto& text_structure = ABSL_DIE_IF_NULL(analyzer)->Data();
  const auto status = VerifyFormatting(text_structure, code, "<filename>");
  EXPECT_OK(status);
}

// Tests that un-lexable outputs are caught as errors.
TEST(VerifyFormattingTest, LexError) {
  const absl::string_view code("class c;endclass\n");
  const std::unique_ptr<VerilogAnalyzer> analyzer =
      VerilogAnalyzer::AnalyzeAutomaticMode(code, "<file>", kDefaultPreprocess);
  const auto& text_structure = ABSL_DIE_IF_NULL(analyzer)->Data();
  const absl::string_view bad_code("1class c;endclass\n");  // lexical error
  const auto status = VerifyFormatting(text_structure, bad_code, "<filename>");
  EXPECT_FALSE(status.ok());
  EXPECT_EQ(status.code(), StatusCode::kDataLoss);
}

// Tests that un-parseable outputs are caught as errors.
TEST(VerifyFormattingTest, ParseError) {
  const absl::string_view code("class c;endclass\n");
  const std::unique_ptr<VerilogAnalyzer> analyzer =
      VerilogAnalyzer::AnalyzeAutomaticMode(code, "<file>", kDefaultPreprocess);
  const auto& text_structure = ABSL_DIE_IF_NULL(analyzer)->Data();
  const absl::string_view bad_code("classc;endclass\n");  // syntax error
  const auto status = VerifyFormatting(text_structure, bad_code, "<filename>");
  EXPECT_FALSE(status.ok());
  EXPECT_EQ(status.code(), StatusCode::kDataLoss);
}

// Tests that lexical differences are caught as errors.
TEST(VerifyFormattingTest, LexicalDifference) {
  const absl::string_view code("class c;endclass\n");
  const std::unique_ptr<VerilogAnalyzer> analyzer =
      VerilogAnalyzer::AnalyzeAutomaticMode(code, "<file>", kDefaultPreprocess);
  const auto& text_structure = ABSL_DIE_IF_NULL(analyzer)->Data();
  const absl::string_view bad_code("class c;;endclass\n");  // different tokens
  const auto status = VerifyFormatting(text_structure, bad_code, "<filename>");
  EXPECT_FALSE(status.ok());
  EXPECT_EQ(status.code(), StatusCode::kDataLoss);
}

struct FormatterTestCase {
  absl::string_view input;
  absl::string_view expected;
};

static const LineNumberSet kEnableAllLines;

// Test that the expected output is produced with the formatter using a custom
// FormatStyle.
TEST(FormatterTest, FormatCustomStyleTest) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"module m;wire w;endmodule\n",
       "module m;\n"
       "          wire w;\n"
       "endmodule\n"},
  };

  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 10;  // unconventional indentation
  style.wrap_spaces = 4;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    EXPECT_OK(status);
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kFormatterTestCases[] = {
    {"", ""},
    {"\n", "\n"},
    {"\n\n", "\n\n"},
    {"\t//comment\n", "//comment\n"},
    {"\t/*comment*/\n", "/*comment*/\n"},
    {"\t/*multi-line\ncomment*/\n", "/*multi-line\ncomment*/\n"},
    // preprocessor test cases
    {"`include    \"path/to/file.vh\"\n", "`include \"path/to/file.vh\"\n"},
    {"`include    `\"path/to/file.vh`\"\n", "`include `\"path/to/file.vh`\"\n"},
    {"`define    FOO\n", "`define FOO\n"},
    {"`define    FOO   BAR\n", "`define FOO BAR\n"},
    {"`define    FOO\n"
     "`define  BAR\n",
     "`define FOO\n"
     "`define BAR\n"},
    {"`ifndef    FOO\n"
     "`endif // FOO\n",
     "`ifndef FOO\n"
     "`endif  // FOO\n"},
    {"`ifndef    FOO\n"
     "`define   BAR\n"
     "`endif\n",
     "`ifndef FOO\n"
     "`define BAR\n"
     "`endif\n"},
    {"`ifndef    FOO\n"
     "`define   BAR\n\n"  // one more blank line
     "`endif\n",
     "`ifndef FOO\n"
     "`define BAR\n\n"
     "`endif\n"},
    {"`define    FOO   \\\n"
     "  BAR\n",
     "`define FOO \\\n"  // TODO(b/72527558): right align '\'s to column limit
     "  BAR\n"},
    {"`define    FOOOOOOOOOOOOOOOO   \\\n"
     "  BAAAAAAAAAAAAAAAAR BAAAAAAAAAAAAAZ;\n",
     "`define FOOOOOOOOOOOOOOOO \\\n"  // macro text starts at '\'
     "  BAAAAAAAAAAAAAAAAR BAAAAAAAAAAAAAZ;\n"},
    {"`ifdef      FOO\n"
     "  `fine()\n"
     "`else\n"
     "  `error()\n"
     "`endif\n",
     "`ifdef FOO\n"
     "`fine()\n"
     "`else\n"
     "`error()\n"
     "`endif\n"},
    {"`ifdef      FOO\n"
     "  `fine()\n"
     "`else // trouble\n"
     "  `error()\n"
     "`endif\n",
     "`ifdef FOO\n"
     "`fine()\n"
     "`else  // trouble\n"
     "`error()\n"
     "`endif\n"},
    {"`ifdef      FOO\n"
     "  `fine()\n"
     "`else /* trouble */\n"
     "  `error()\n"
     "`endif\n",
     "`ifdef FOO\n"
     "`fine()\n"
     "`else  /* trouble */\n"
     "`error()\n"
     "`endif\n"},
    {"    // lonely comment\n", "// lonely comment\n"},
    {"    // first comment\n"
     "  // last comment\n",
     "// first comment\n"
     "// last comment\n"},
    {"    // starting comment\n"
     "  `define   FOO\n",
     "// starting comment\n"
     "`define FOO\n"},
    {"  `define   FOO\n"
     "   // trailing comment\n",
     "`define FOO\n"
     "// trailing comment\n"},
    {"  `define   FOO\n"
     "   // trailing comment 1\n"
     "      // trailing comment 2\n",
     "`define FOO\n"
     "// trailing comment 1\n"
     "// trailing comment 2\n"},
    {
        "  `define   FOO    \\\n"  // multiline macro definition
        " 1\n",
        "`define FOO \\\n"
        " 1\n"  // TODO(b/141517267): Reflowing macro definitions
    },
    {"`define FOO    \\\n"  // multiline macro definition
     "        b\n",
     "`define FOO \\\n"  // no need to align '\'
     "        b\n"},
    {"`define FOO    \\\n"  // multiline macro definition
     "        a +    \\\n"
     "        b\n",
     "`define FOO    \\\n"  // preserve spacing before '\'
     "        a +    \\\n"  // to stay aligned with this one
     "        b\n"},
    {"    // comment with backslash\\\n", "// comment with backslash\\\n"},
    {// macro with MacroArg tokens as arguments
     "`FOOOOOO(\nbar1...\n,\nbar2...\n,\nbar3...\n,\nbar4\n)\n",
     "`FOOOOOO(bar1..., bar2..., bar3...,\n"
     "         bar4)\n"},
    {// macro declaration exceeds line length limit
     "`F_MACRO(looooooong_type if_it_fits_I_sits)\n",
     "`F_MACRO(\n"
     "    looooooong_type if_it_fits_I_sits)\n"},
    {// macro call with not fitting arguments
     "`MACRO_FFFFFFFFFFF("
     "type_a_aaaa,type_b_bbbbb,"
     "type_c_cccccc,type_d_dddddddd,"
     "type_e_eeeeeeee,type_f_ffff)\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    type_a_aaaa, type_b_bbbbb,\n"
     "    type_c_cccccc, type_d_dddddddd,\n"
     "    type_e_eeeeeeee, type_f_ffff)\n"},
    {// nested macro call
     "`MACRO_FFFFFFFFFFF( "
     "`A(type_a_aaaa), `B(type_b_bbbbb), "
     "`C(type_c_cccccc), `D(type_d_dddddddd), "
     "`E(type_e_eeeeeeee), `F(type_f_ffff))\n",
     "`MACRO_FFFFFFFFFFF(`A(type_a_aaaa),\n"
     "                   `B(type_b_bbbbb),\n"
     "                   `C(type_c_cccccc),\n"
     "                   `D(type_d_dddddddd),\n"
     "                   `E(type_e_eeeeeeee),\n"
     "                   `F(type_f_ffff))\n"},
    {// two-level nested macro call
     "`MACRO_FFFFFFFFFFF( "
     "`A(type_a_aaaa, `B(type_b_bbbbb)), "
     "`C(type_c_cccccc, `D(type_d_dddddddd)), "
     "`E(type_e_eeeeeeee, `F(type_f_ffff)))\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    `A(type_a_aaaa, `B(type_b_bbbbb)),\n"
     "    `C(type_c_cccccc,\n"
     "       `D(type_d_dddddddd)),\n"
     "    `E(type_e_eeeeeeee,\n"
     "       `F(type_f_ffff)))\n"},
    {// three-level nested macro call
     "`MACRO_FFFFFFFFFFF(`A(type_a_aaaa,"
     "`B(type_b_bbbbb,`C(type_c_cccccc))),"
     "`D(type_d_dddddddd,`E(type_e_eeeeeeee,"
     "`F(type_f_ffff))))\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    `A(type_a_aaaa,\n"
     "       `B(type_b_bbbbb,\n"
     "          `C(type_c_cccccc))),\n"
     "    `D(type_d_dddddddd,\n"
     "       `E(type_e_eeeeeeee,\n"
     "          `F(type_f_ffff))))\n"},
    {// macro call with MacroArg tokens as arugments and with semicolon
     "`FOOOOOO(\nbar1...\n,\nbar2...\n,\nbar3...\n,\nbar4\n);\n",
     "`FOOOOOO(bar1..., bar2..., bar3...,\n"
     "         bar4);\n"},
    {// macro declaration exceeds line length limit and contains semicolon
     "`F_MACRO(looooooong_type if_it_fits_I_sits);\n",
     "`F_MACRO(\n"
     "    looooooong_type if_it_fits_I_sits);\n"},
    {// macro call with not fitting arguments and semicolon
     "`MACRO_FFFFFFFFFFF("
     "type_a_aaaa,type_b_bbbbb,"
     "type_c_cccccc,type_d_dddddddd,"
     "type_e_eeeeeeee,type_f_ffff);\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    type_a_aaaa, type_b_bbbbb,\n"
     "    type_c_cccccc, type_d_dddddddd,\n"
     "    type_e_eeeeeeee, type_f_ffff);\n"},
    {// nested macro call with semicolon
     "`MACRO_FFFFFFFFFFF( "
     "`A(type_a_aaaa), `B(type_b_bbbbb), "
     "`C(type_c_cccccc), `D(type_d_dddddddd), "
     "`E(type_e_eeeeeeee), `F(type_f_ffff));\n",
     "`MACRO_FFFFFFFFFFF(`A(type_a_aaaa),\n"
     "                   `B(type_b_bbbbb),\n"
     "                   `C(type_c_cccccc),\n"
     "                   `D(type_d_dddddddd),\n"
     "                   `E(type_e_eeeeeeee),\n"
     "                   `F(type_f_ffff));\n"},
    {// two-level nested macro call with semicolon
     "`MACRO_FFFFFFFFFFF( "
     "`A(type_a_aaaa, `B(type_b_bbbbb)), "
     "`C(type_c_cccccc, `D(type_d_dddddddd)), "
     "`E(type_e_eeeeeeee, `F(type_f_ffff)));\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    `A(type_a_aaaa, `B(type_b_bbbbb)),\n"
     "    `C(type_c_cccccc,\n"
     "       `D(type_d_dddddddd)),\n"
     "    `E(type_e_eeeeeeee,\n"
     "       `F(type_f_ffff)));\n"},
    {// three-level nested macro call with semicolon
     "`MACRO_FFFFFFFFFFF(`A(type_a_aaaa,"
     "`B(type_b_bbbbb,`C(type_c_cccccc))),"
     "`D(type_d_dddddddd,`E(type_e_eeeeeeee,"
     "`F(type_f_ffff))));\n",
     "`MACRO_FFFFFFFFFFF(\n"
     "    `A(type_a_aaaa,\n"
     "       `B(type_b_bbbbb,\n"
     "          `C(type_c_cccccc))),\n"
     "    `D(type_d_dddddddd,\n"
     "       `E(type_e_eeeeeeee,\n"
     "          `F(type_f_ffff))));\n"},
    {// macro call with no args
     "`FOOOOOO()\n", "`FOOOOOO()\n"},
    {// macro call with no args and semicolon
     "`FOOOOOO();\n", "`FOOOOOO();\n"},
    {// macro call with no args and semicolon separated by space
     "`FOOOOOO() ;\n", "`FOOOOOO();\n"},
    {// macro call with comments in argument list
     "`FOO(aa, //aa\nbb , // bb\ncc)\n",
     "`FOO(aa,  //aa\n"
     "     bb,  // bb\n"
     "     cc)\n"},
    {// macro call with comment before first argument
     "`FOO(//aa\naa, //bb\nbb , // cc\ncc)\n",
     "`FOO(  //aa\n"
     "    aa,  //bb\n"
     "    bb,  // cc\n"
     "    cc)\n"},
    {// macro call with argument including trailing EOL comment
     "`FOO(aa, bb,//cc\ndd)\n",
     "`FOO(aa, bb,  //cc\n"
     "     dd)\n"},
    {// macro call with argument including EOL comment on own line
     "`FOOOO(aa, bb,\n//cc\ndd)\n",
     "`FOOOO(aa, bb,\n"
     "       //cc\n"
     "       dd)\n"},
    {"  // leading comment\n"
     "  `define   FOO    \\\n"  // multiline macro definition
     "1\n"
     "   // trailing comment\n",
     "// leading comment\n"
     "`define FOO \\\n"
     "1\n"  // TODO(b/141517267): Reflowing macro definitions
     "// trailing comment\n"},
    {// macro call after define
     "`define   FOO   BAR\n"
     "  `FOO( bar )\n",
     "`define FOO BAR\n"
     "`FOO(bar)\n"},
    {// multiple argument macro call
     "  `FOO( bar , baz )\n", "`FOO(bar, baz)\n"},
    {// long macro call breaking
     " `ASSERT_INIT(S, (D == 4 && K inside {0, 1}) ||"
     " (D == 3 && K== 4))\n",
     "`ASSERT_INIT(\n"
     "    S, (D == 4 && K inside {0, 1}) ||\n"
     "           (D == 3 && K == 4))\n"},
    {// long macro call breaking
     " `AINIT(S, (D == 4 && K inside {0, 1}) ||"
     " (D == 3 && K== 4))\n",
     "`AINIT(S, (D == 4 && K inside {0, 1}) ||\n"
     "              (D == 3 && K == 4))\n"},
    {// long macro call breaking
     " `ASSERT_INIT(S, D == 4 && K inside {0, 1})\n",
     "`ASSERT_INIT(S,\n"
     "             D == 4 && K inside {0, 1})\n"},
    {// macro call in function
     "function void foo( );   foo=`FOO( bar , baz ) ; endfunction\n",
     "function void foo();\n"
     "  foo = `FOO(bar, baz);\n"
     "endfunction\n"},
    {// nested macro call in function
     "function void foo( );   foo=`FOO( `BAR ( baz ) ) ; endfunction\n",
     "function void foo();\n"
     "  foo = `FOO(`BAR(baz));\n"
     "endfunction\n"},
    {// macro call in class
     "class foo;    `FOO  ( bar , baz ) ; endclass\n",
     "class foo;\n"
     "  `FOO(bar, baz);\n"
     "endclass\n"},
    {// nested macro call in class
     "class foo;    `FOO  ( `BAR ( baz1 , baz2 ) ) ; endclass\n",
     "class foo;\n"
     "  `FOO(`BAR(baz1, baz2));\n"
     "endclass\n"},
    {// multi-line macro arg "aaaa..." should start on its own line,
     // even if its first line would fit under the column limit
     "`CHECK_FATAL(rd_tr,\n"
     "             aaaa     == zzz;\n"
     "             ggg      == vv::w;,\n"
     "             \"Failed to ..........\")\n",
     "`CHECK_FATAL(rd_tr,\n"
     "             aaaa     == zzz;\n"
     "             ggg      == vv::w;,\n"
     "             \"Failed to ..........\")\n"},

    // `uvm macros indenting
    {
        // simple test case
        "`uvm_object_utils_begin(aa)\n"
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_object_utils_end\n",
        "`uvm_object_utils_begin(aa)\n"
        "  `uvm_field_int(bb, UVM_DEFAULT)\n"
        "  `uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_object_utils_end\n",
    },
    {// multiple uvm.*begin - uvm.*end ranges
     "`uvm_object_utils_begin(aa)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_begin(bb)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n",
     "`uvm_object_utils_begin(aa)\n"
     "  `uvm_field_int(bb, UVM_DEFAULT)\n"
     "  `uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_begin(bb)\n"
     "  `uvm_field_int(bb, UVM_DEFAULT)\n"
     "  `uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_object_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"},
    {
        // empty uvm.*begin - uvm.*end range
        "`uvm_component_utils_begin(aa)\n"
        "`uvm_component_utils_end\n",
        "`uvm_component_utils_begin(aa)\n"
        "`uvm_component_utils_end\n",
    },
    {
        // uvm_field_utils
        "`uvm_field_utils_begin(aa)\n"
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_field_utils_end\n",
        "`uvm_field_utils_begin(aa)\n"
        "  `uvm_field_int(bb, UVM_DEFAULT)\n"
        "  `uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_field_utils_end\n",
    },
    {
        // uvm_component
        "`uvm_component_utils_begin(aa)\n"
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n",
        "`uvm_component_utils_begin(aa)\n"
        "  `uvm_field_int(bb, UVM_DEFAULT)\n"
        "  `uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n",
    },
    {
        // nested uvm macros
        "`uvm_field_int(l0, UVM_DEFAULT)\n"
        "`uvm_component_utils_begin(l0)\n"
        "`uvm_field_int(l1, UVM_DEFAULT)\n"
        "`uvm_component_utils_begin(l1)\n"
        "`uvm_field_int(l2, UVM_DEFAULT)\n"
        "`uvm_component_utils_begin(l2)\n"
        "`uvm_field_int(l3, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n"
        "`uvm_field_int(l2, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n"
        "`uvm_field_int(l1, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n"
        "`uvm_field_int(l0, UVM_DEFAULT)\n",
        "`uvm_field_int(l0, UVM_DEFAULT)\n"
        "`uvm_component_utils_begin(l0)\n"
        "  `uvm_field_int(l1, UVM_DEFAULT)\n"
        "  `uvm_component_utils_begin(l1)\n"
        "    `uvm_field_int(l2, UVM_DEFAULT)\n"
        "    `uvm_component_utils_begin(l2)\n"
        "      `uvm_field_int(l3, UVM_DEFAULT)\n"
        "    `uvm_component_utils_end\n"
        "    `uvm_field_int(l2, UVM_DEFAULT)\n"
        "  `uvm_component_utils_end\n"
        "  `uvm_field_int(l1, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n"
        "`uvm_field_int(l0, UVM_DEFAULT)\n",
    },
    {
        // non-uvm macro
        "`my_macro_begin(aa)\n"
        "`my_field(b)\n"
        "`my_field(c)\n"
        "`my_macro_end\n",
        "`my_macro_begin(aa)\n"
        "`my_field(b)\n"
        "`my_field(c)\n"
        "`my_macro_end\n",
    },
    {
        // unbalanced uvm macros: missing uvm.*end macro
        "`uvm_component_utils_begin(aa)\n"
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n",
        "`uvm_component_utils_begin(aa)\n"
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n",
    },
    {
        // unbalanced uvm macros: missing uvm.*begin macro
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n",
        "`uvm_field_int(bb, UVM_DEFAULT)\n"
        "`uvm_field_int(cc, UVM_DEFAULT)\n"
        "`uvm_component_utils_end\n",
    },
    {// unbalanced uvm macros: missing _begin macro between
     // matching uvm.*begin-uvm.*end macros
     "`uvm_component_utils_begin(aa)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_component_utils_begin(aa)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n",
     "`uvm_component_utils_begin(aa)\n"
     "  `uvm_field_int(bb, UVM_DEFAULT)\n"
     "  `uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n"
     "`uvm_field_int(bb, UVM_DEFAULT)\n"
     "`uvm_component_utils_begin(aa)\n"
     "  `uvm_field_int(bb, UVM_DEFAULT)\n"
     "  `uvm_field_int(cc, UVM_DEFAULT)\n"
     "`uvm_component_utils_end\n"},

    // top-level directive test cases
    {"`timescale  1ns/1ps\n",  //
     "`timescale 1ns / 1ps\n"},

    // parameter test cases
    {
        "  parameter  int   foo=0 ;",
        "parameter int foo = 0;\n",
    },
    {
        "  parameter  int   foo=bar [ 0 ] ;",  // index expression
        "parameter int foo = bar[0];\n",
    },
    {
        "  parameter  int   foo=bar [ a+b ] ;",  // binary inside index expr
        "parameter int foo = bar[a+b];\n",       // allowed to be 0 spaces
                                                 // (preserved)
    },
    {
        "  parameter  int   foo=bar [ a+ b ] ;",  // binary inside index expr
        "parameter int foo = bar[a+b];\n",        // allowed to be 0 spaces
                                                  // (symmetrized)
    },
    {
        "  parameter  int   foo=bar [ a +b ] ;",  // compact binary inside
        "parameter int foo = bar[a+b];\n",        // index expression
    },
    {
        "  parameter  int   foo=bar [ a  +b ] ;",  // compact binary inside
        "parameter int foo = bar[a+b];\n",         // index expression
    },
    {
        // with line continuations
        "  parameter  \\\nint   \\\nfoo=a+ \\\nb ;",
        "parameter\\\n    int\\\n    foo = a +\\\n    b;\n",
        // TODO(fangism): should text following a line continuation hang-indent?
    },
    // unary prefix expressions
    {
        "  parameter  int   foo=- 1 ;",
        "parameter int foo = -1;\n",
    },
    {
        "  parameter  int   foo=+ 7 ;",
        "parameter int foo = +7;\n",
    },
    {
        "  parameter  int   foo=- J ;",
        "parameter int foo = -J;\n",
    },
    {
        "  parameter  int   foo=- ( y ) ;",
        "parameter int foo = -(y);\n",
    },
    {
        "  parameter  int   foo=- ( z*y ) ;",
        "parameter int foo = -(z * y);\n",
    },
    {
        "  parameter  int   foo=-  z*- y  ;",
        "parameter int foo = -z * -y;\n",
    },
    {
        "  parameter  int   foo=( - 2 ) ;",  //
        "parameter int foo = (-2);\n",
    },
    {
        "  parameter  int   foo=$bar(-  z,- y ) ;",
        "parameter int foo = $bar(-z, -y);\n",
    },
    {"  parameter int a=b&~(c<<d);", "parameter int a = b & ~(c << d);\n"},
    {"  parameter int a=~~~~b;", "parameter int a = ~~~~b;\n"},
    {"  parameter int a = ~ ~ ~ ~ b;", "parameter int a = ~~~~b;\n"},
    {"  parameter int a   =   ~--b;", "parameter int a = ~--b;\n"},
    {"  parameter int a   =   ~ --b;", "parameter int a = ~--b;\n"},
    {"  parameter int a = ~ ++ b;", "parameter int a = ~++b;\n"},
    {"  parameter int a=--b- --c;", "parameter int a = --b - --c;\n"},
    // ^~ and ~^ are bitwise nor, but ^ ~ isn't
    {"  parameter int a=b^~(c<<d);", "parameter int a = b ^~ (c << d);\n"},
    {"  parameter int a=b~^(c<<d);", "parameter int a = b ~^ (c << d);\n"},
    {"  parameter int a=b^ ~ (c<<d);", "parameter int a = b ^ ~(c << d);\n"},
    {"  parameter int a=b ^ ~(c<<d);", "parameter int a = b ^ ~(c << d);\n"},

    {"  parameter int a=b^~{c};", "parameter int a = b ^~ {c};\n"},
    {"  parameter int a=b~^{c};", "parameter int a = b ~^ {c};\n"},
    {"  parameter int a=b^ ~ {c};", "parameter int a = b ^ ~{c};\n"},
    {"  parameter int a=b ^ ~{c};", "parameter int a = b ^ ~{c};\n"},

    {"  parameter int a={a}^{b};", "parameter int a = {a} ^ {b};\n"},
    {"  parameter int a={b}^(c);", "parameter int a = {b} ^ (c);\n"},
    {"  parameter int a=b[0]^ {c};", "parameter int a = b[0] ^ {c};\n"},
    {"  parameter int a={c}^a[b];", "parameter int a = {c} ^ a[b];\n"},
    {"  parameter int a=(c)^{a[b]};", "parameter int a = (c) ^ {a[b]};\n"},

    {"  parameter int a={^{a,^b},c};", "parameter int a = {^{a, ^b}, c};\n"},
    {"  parameter int a=(a)^(^d[e]^{c});",
     "parameter int a = (a) ^ (^d[e] ^ {c});\n"},
    {"  parameter int a=(a)^(^d[e]^f[g]);",
     "parameter int a = (a) ^ (^d[e] ^ f[g]);\n"},
    {"  parameter int a=(b^(c^(d^e)));",
     "parameter int a = (b ^ (c ^ (d ^ e)));\n"},
    {"  parameter int a={b^{c^{d^e}}};",
     "parameter int a = {b ^ {c ^ {d ^ e}}};\n"},
    {"  parameter int a={b^{c[d^e]}};",
     "parameter int a = {b ^ {c[d^e]}};\n"},  // allow 0 spaces inside "[d^e]"
    {"  parameter int a={(b^c),(d^^e)};",
     "parameter int a = {(b ^ c), (d ^ ^e)};\n"},

    {"  parameter int a={(b[x]^{c[y]})};",
     "parameter int a = {(b[x] ^ {c[y]})};\n"},
    {"  parameter int a={d^^e[f] ^ (g)};",
     "parameter int a = {d ^ ^e[f] ^ (g)};\n"},

    // ~| is unary reduction NOR, |~ and | ~ aren't
    {"  parameter int a=b| ~(c<<d);", "parameter int a = b | ~(c << d);\n"},
    {"  parameter int a=b|~(c<<d);", "parameter int a = b | ~(c << d);\n"},
    {"  parameter int a=b| ~| ( c<<d);", "parameter int a = b | ~|(c << d);\n"},
    {"  parameter int a=b| ~| ~| ( c<<d);",
     "parameter int a = b | ~|~|(c << d);\n"},
    {"  parameter int a=b| ~~~( c<<d);",
     "parameter int a = b | ~~~(c << d);\n"},
    {
        "  parameter  int   foo=- - 1 ;",  // double negative
        "parameter int foo = - -1;\n",
    },
    {
        "  parameter  int   ternary=1?2:3;",
        "parameter int ternary = 1 ? 2 : 3;\n",
    },
    {
        "  parameter  int   ternary=a?b:c;",
        "parameter int ternary = a ? b : c;\n",
    },
    {
        "  parameter  int   ternary=\"a\"?\"b\":\"c\";",
        "parameter int ternary = \"a\" ? \"b\" : \"c\";\n",
    },
    {
        "  parameter  int   t=`\"a`\"?`\"b`\":`\"c`\";",
        "parameter int t = `\"a`\" ? `\"b`\" : `\"c`\";\n",
    },
    {
        "  parameter  int   ternary=(a)?(b):(c);",
        "parameter int ternary = (a) ? (b) : (c);\n",
    },
    {
        "  parameter  int   ternary={a}?{b}:{c};",
        "parameter int ternary = {a} ? {b} : {c};\n",
    },
    {
        "  parameter  int   long_ternary=cond?long_option_t:long_option_f;",
        "parameter int long_ternary = cond ?\n"
        "    long_option_t : long_option_f;\n",
    },
    {
        "  parameter  int   break_two=cond\n"
        "? a_really_long_option_number_one:a_really_long_option_number_two;",
        "parameter int break_two = cond ?\n"
        "    a_really_long_option_number_one :\n"
        "    a_really_long_option_number_two;\n",
    },
    {
        "  assign   ternary=1?2:3;",
        "assign ternary = 1 ? 2 : 3;\n",
    },
    {
        "  assign   ternary=a?b:c;",
        "assign ternary = a ? b : c;\n",
    },
    {
        "  assign   ternary={a}?{b}:{c};",
        "assign ternary = {a} ? {b} : {c};\n",
    },
    {
        "  assign   break_two=cond\n"
        "? a_really_long_option_number_one:a_really_long_option_number_two;",
        "assign break_two = cond ?\n"
        "    a_really_long_option_number_one :\n"
        "    a_really_long_option_number_two;\n",
    },
    {
        "assign prefetch_d     =\n"
        "lookup_grant_ic0 ? (lookup_addr_aligned + ADDR) :\n"
        "                   addr_i;",
        "assign prefetch_d = lookup_grant_ic0 ?\n"
        "    (lookup_addr_aligned + ADDR) :\n"
        "    addr_i;\n",
    },
    {
        "assign prefetch_d     =\n"
        "lookup_grant_ic0 ? (lookup_addr + 1) :\n"
        "                   addr_i;",
        "assign prefetch_d = lookup_grant_ic0 ?\n"
        "    (lookup_addr + 1) : addr_i;\n",
    },
    {
        "module test;\n"
        " assign next = // EOL\n"
        "  foo ? '0 :\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next =  // EOL\n"
        "      foo ? '0 : cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo // EOL\n"
        "  ? '0 :\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo  // EOL\n"
        "      ? '0 : cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? // EOL\n"
        "  '0 :\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ?  // EOL\n"
        "      '0 : cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 // EOL\n"
        "  :\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0  // EOL\n"
        "      : cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  bar ? '1 : '0;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      bar ? '1 : '0;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  bar // EOL2\n"
        " ? '1 : '0;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      bar  // EOL2\n"
        "      ? '1 : '0;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  bar ? // EOL2\n"
        "  '1 : '0;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      bar ?  // EOL2\n"
        "      '1 : '0;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  bar ? '1 // EOL2\n"
        "  : '0;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      bar ? '1  // EOL2\n"
        "      : '0;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? '0 : // EOL\n"
        "  bar ? '1 : // EOL2\n"
        "  '0;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ? '0 :  // EOL\n"
        "      bar ? '1 :  // EOL2\n"
        "      '0;\n"
        "endmodule\n",
    },
    {
        "assign prefetch_d     =\n"
        "lookup_ic0 ? // EOL\n"
        " (lookup_addr + 1) :// BOO\n"
        "                   addr_i;",
        "assign prefetch_d = lookup_ic0 ?  // EOL\n"
        "    (lookup_addr + 1) :  // BOO\n"
        "    addr_i;\n",
    },
    {
        "module test;\n"
        " assign next = (foo) ? '0          : // clear \n"
        "           (bar) ? cnt + 1'b1  : // count \n"
        "                   cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = (foo) ? '0 :  // clear \n"
        "      (bar) ? cnt + 1'b1 :  // count \n"
        "      cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = // FOO\n"
        "  (foo) ? '0          : // clear \n"
        "           (bar) ? cnt + 1'b1  : // count \n"
        "                   cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next =  // FOO\n"
        "      (foo) ? '0 :  // clear \n"
        "      (bar) ? cnt + 1'b1 :  // count \n"
        "      cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? a_really_long_identifier : // EOL\n"
        "  cnt;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ?\n"
        "      a_really_long_identifier :  // EOL\n"
        "      cnt;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? a_really_long_identifier : // EOL\n"
        "  another_really_long_identifier;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ?\n"
        "      a_really_long_identifier :  // EOL\n"
        "      another_really_long_identifier;\n"
        "endmodule\n",
    },
    {
        "module test;\n"
        " assign next = foo ? a_really_long_identifier : "
        "another_really_long_identifier;\n"
        "endmodule\n",
        "module test;\n"
        "  assign next = foo ?\n"
        "      a_really_long_identifier :\n"
        "      another_really_long_identifier;\n"
        "endmodule\n",
    },
    {
        "assign m = check                ? {10'b0, foo} :\n"
        "           (bar && (baz == '0)) ? hello        :\n"
        "           world                ? temp1        : temp2;\n",
        "assign m = check ? {10'b0, foo} :\n"
        "    (bar && (baz == '0)) ? hello :\n"
        "    world ? temp1 : temp2;\n",
    },
    {
        "assign {a, b} = !(c == d) ? {1'b0, e} :\n"
        "                ((e == f) && g) ?\n"
        "                {1'b0, f} : (h) ?\n"
        "                {1'b0, e} - 1'b1 :\n"
        "                {1'b0, e} + 1'b1;\n",
        "assign {a, b} = !(c == d) ? {1'b0, e} :\n"
        "    ((e == f) && g) ? {1'b0, f} : (h) ?\n"
        "    {1'b0, e} - 1'b1 : {1'b0, e} + 1'b1;\n",
    },
    {
        "assign {aaaaaaaaaa, bbbbbbbbb} = {1'b0, cccccccccccccccccc[15:0]} +\n"
        "                                 {1'b0, ddddddddddddddddd[15:0]};\n",
        "assign {aaaaaaaaaa, bbbbbbbbb} =\n"
        "    {1'b0, cccccccccccccccccc[15:0]} +\n"
        "    {1'b0, ddddddddddddddddd[15:0]};\n",
    },
    {
        "covergroup a(string b);\n"
        "foobar: cross foo, bar {"
        "ignore_bins baz = binsof(qux) intersect {1, 2, 3, 4, 5, 6, 7};"
        "}\n"
        "endgroup : a\n",
        "covergroup a(string b);\n"
        "  foobar: cross foo, bar{\n"
        "    ignore_bins baz =\n"
        "        binsof (qux) intersect {\n"
        "      1, 2, 3, 4, 5, 6, 7\n"
        "    };\n"
        "  }\n"
        "endgroup : a\n",
    },
    {
        "assign {aa, bb} = {1'b0, cc} + {1'b0, dd};\n",
        "assign {aa, bb} = {1'b0, cc} +\n"
        "    {1'b0, dd};\n",
    },

    // streaming operators
    {
        "   parameter  int  b={ >>   { a } } ;",
        "parameter int b = {>>{a}};\n",
    },
    {
        "   parameter  int  b={ >>   { a , b,  c } } ;",
        "parameter int b = {>>{a, b, c}};\n",
    },
    {
        "   parameter  int  b={ >> 4  { a } } ;",
        "parameter int b = {>>4{a}};\n",
    },
    {
        "   parameter  int  b={ >> byte  { a } } ;",
        "parameter int b = {>>byte{a}};\n",
    },
    {
        "   parameter  int  b={ >> my_type_t  { a } } ;",
        "parameter int b = {>>my_type_t{a}};\n",
    },
    {
        "   parameter  int  b={ >> `GET_TYPE  { a } } ;",
        "parameter int b = {>>`GET_TYPE{a}};\n",
    },
    {
        "   parameter  int  b={ >> 4  {{ >> 2 { a }  }} } ;",
        "parameter int b = {>>4{{>>2{a}}}};\n",
    },
    {
        "   parameter  int  b={ <<   { a } } ;",
        "parameter int b = {<<{a}};\n",
    },
    {
        "   parameter  int  b={ <<   { a , b,  c } } ;",
        "parameter int b = {<<{a, b, c}};\n",
    },
    {
        "   parameter  int  b={ << 4  { a } } ;",
        "parameter int b = {<<4{a}};\n",
    },
    {
        "   parameter  int  b={ << byte  { a } } ;",
        "parameter int b = {<<byte{a}};\n",
    },
    {
        "   parameter  int  b={ << my_type_t  { a } } ;",
        "parameter int b = {<<my_type_t{a}};\n",
    },
    {
        "   parameter  int  b={ << `GET_TYPE  { a } } ;",
        "parameter int b = {<<`GET_TYPE{a}};\n",
    },
    {
        "   parameter  int  b={ << 4  {{ << 2 { a }  }} } ;",
        "parameter int b = {<<4{{<<2{a}}}};\n",
    },

    // basic module test cases
    {"module foo;endmodule:foo\n",
     "module foo;\n"
     "endmodule : foo\n"},
    {"module\nfoo\n;\nendmodule\n:\nfoo\n",
     "module foo;\n"
     "endmodule : foo\n"},
    {"module\tfoo\t;\tendmodule\t:\tfoo",
     "module foo;\n"
     "endmodule : foo\n"},
    {"module foo;     // foo\n"
     "endmodule:foo\n",
     "module foo;  // foo\n"
     "endmodule : foo\n"},
    {"module foo;/* foo */endmodule:foo\n",
     "module foo;  /* foo */\n"
     "endmodule : foo\n"},
    {"module pm #(\n"
     "//comment\n"
     ") (wire ww);\n"
     "endmodule\n",
     "module pm #(\n"
     "    //comment\n"  // comment indented
     ") (\n"
     "    wire ww\n"
     ");\n"
     "endmodule\n"},
    {"module pm ( ) ;\n"  // empty ports list
     "endmodule\n",
     "module pm ();\n"
     "endmodule\n"},
    {"module pm #(\n"
     "//comment\n"
     ") ( );\n"
     "endmodule\n",
     "module pm #(\n"
     "    //comment\n"  // comment indented
     ") ();\n"          // (); grouped together
     "endmodule\n"},
    {"`ifdef FOO\n"
     "    `ifndef BAR\n"
     "    `endif\n"
     "`endif\n",
     "`ifdef FOO\n"
     "`ifndef BAR\n"
     "`endif\n"
     "`endif\n"},
    {"module foo(\n"
     "       `include \"ports.svh\"\n"
     "         ) ; endmodule\n",
     "module foo (\n"
     "    `include \"ports.svh\"\n"
     ");\n"
     "endmodule\n"},
    {"module foo(\n"
     "       `define FOO\n"
     "`undef\tFOO\n"
     "         ) ; endmodule\n",
     "module foo (\n"
     "    `define FOO\n"
     "    `undef FOO\n"
     ");\n"
     "endmodule\n"},
    {"module foo(  input x  , output y ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  x,\n"  // aligned
     "    output y\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "// comment\n"
     "  input x  , output y ) ;endmodule:foo\n",
     "module foo (\n"
     "    // comment\n"
     "    input  x,\n"  // aligned
     "    output y\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input[2:0]x  , output y [3:0] ) ;endmodule:foo\n",
     // each port item should be on its own line
     "module foo (\n"
     "    input  [2:0] x,\n"  // aligned
     "    output       y[3:0]\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  , output reg yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,\n"  // aligned
     "    output reg  yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  ,//c1\n"
     "output reg yyy //c2\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,   //c1\n"  // aligned
     "    output reg  yyy  //c2\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  ,/* c1 */\n"
     "output reg yyy /* c2 */\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,   /* c1 */\n"  // aligned
     "    output reg  yyy  /* c2 */\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "// comment\n"
     "input wire x  ,//c1\n"
     "output reg yyy //c2\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    // comment\n"
     "    input  wire x,   //c1\n"  // aligned
     "    output reg  yyy  //c2\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "/* comment */\n"
     "input wire x  ,/* c1 */\n"
     "output reg yyy /* c2 */\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    /* comment */\n"
     "    input  wire x,   /* c1 */\n"  // aligned
     "    output reg  yyy  /* c2 */\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  ,/* c1\n"
     "c2\n"
     "c3 */\n"
     "output reg yyy /* c4 */\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,   /* c1\n"
     "c2\n"
     "c3 */\n"  // TODO: align multiline comments
     "    output reg  yyy  /* c4 */\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  ,/* c1 */\n"
     "output reg yyy,\n"
     "output z // c2\n"
     " ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,    /* c1 */\n"  // aligned
     "    output reg  yyy,\n"
     "    output      z     // c2\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module m(input logic [4:0] foo,  // comment\n"
     "input logic bar // comment\n"
     " ) ;endmodule:m\n",
     "module m (\n"
     "    input logic [4:0] foo,  // comment\n"  // aligned
     "    input logic       bar   // comment\n"  // aligned
     ");\n"
     "endmodule : m\n"},
    {"module foo(  input wire x  , output yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,\n"  // aligned
     "    output      yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   x  , output reg yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input      x,\n"  // aligned
     "    output reg yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   x  , output reg[a:b]yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input            x,\n"  // aligned
     "    output reg [a:b] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:b]x  , output reg  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input      [a:b] x,\n"  // aligned
     "    output reg       yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   x  , "
     "  output logic  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input        x,\n"  // aligned
     "    output logic yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:c]x  , "
     "  output logic[a-b: c]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input        [  a:c] x,\n"  // aligned
     "    output logic [a-b:c] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:c]x  , "
     "  output logic[a - b: c]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input        [    a:c] x,\n"  // aligned
     "    output logic [a - b:c] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:c]x  , input zzz ,"
     "  output logic[a - b: c]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input        [    a:c] x,\n"    // aligned []'s
     "    input                  zzz,\n"  // aligned ids
     "    output logic [a - b:c] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:b]x  , "
     "  output reg[e: f]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input      [a:b] x,\n"  // aligned
     "    output reg [e:f] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   tri[aa: bb]x  , "
     "  output reg[e: f]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  tri [aa:bb] x,\n"  // aligned
     "    output reg [  e:f] yy\n"  // TODO(b/70310743): align ':'
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input   [a:b][c:d]x  , "
     "  output reg[e: f]  yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input      [a:b][c:d] x,\n"  // aligned
     "    output reg [e:f]      yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  [j:k], output reg yy ) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x [j:k],\n"  // aligned
     "    output reg  yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  , output reg yy [j:k]) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x,\n"  // aligned
     "    output reg  yy[j:k]\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  [p:q], output reg yy [j:k]) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire x [p:q],\n"  // aligned
     "    output reg  yy[j:k]\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  [p:q][r:s], output reg yy [j:k]) "
     ";endmodule:foo\n",
     "module foo (\n"
     "    input  wire x [p:q][r:s],\n"  // aligned
     "    output reg  yy[j:k]\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire x  [p:q][rr:ss], output reg yy [jj:kk][m:n]) "
     ";endmodule:foo\n",
     "module foo (\n"
     // TODO(b/70310743): align :'s
     "    input  wire x [  p:q][rr:ss],\n"
     "    output reg  yy[jj:kk][  m:n]\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire   [p:q]x, output reg yy [j:k]) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire [p:q] x,\n"  // aligned
     "    output reg        yy[j:k]\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire  x [p:q], output reg[j:k]yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire       x [p:q],\n"  // aligned
     "    output reg  [j:k] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input pkg::bar_t  x , output reg  yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  pkg::bar_t x,\n"  // aligned
     "    output reg        yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input wire  x , output pkg::bar_t  yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  wire       x,\n"  // aligned
     "    output pkg::bar_t yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input pkg::bar_t#(1)  x , output reg  yy) ;endmodule:foo\n",
     "module foo (\n"  // with parameterized port type
     "    input  pkg::bar_t#(1) x,\n"
     "    output reg            yy\n"  // aligned
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input signed x , output reg  yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  signed x,\n"  // aligned
     "    output reg    yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input signed x , output reg [m:n] yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  signed       x,\n"  // aligned
     "    output reg    [m:n] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input int signed x , output reg [m:n] yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  int signed       x,\n"  // aligned
     "    output reg        [m:n] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(  input signed x , output pkg::bar_t  yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input  signed     x,\n"  // aligned
     "    output pkg::bar_t yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module somefunction ("
     "logic clk, int   a, int b);endmodule",
     "module somefunction (\n"
     "    logic clk,\n"  // direction missing
     "    int   a,\n"    // direction missing
     "    int   b\n"     // direction missing
     ");\n"
     "endmodule\n"},
    {"module somefunction ("
     "logic clk, input int   a, int b);endmodule",
     "module somefunction (\n"
     "          logic clk,\n"  // direction missing
     "    input int   a,\n"
     "          int   b\n"  // direction missing
     ");\n"
     "endmodule\n"},
    {"module somefunction ("
     "input logic clk, input int   a, int b);endmodule",
     "module somefunction (\n"
     "    input logic clk,\n"
     "    input int   a,\n"
     "          int   b\n"  // direction missing
     ");\n"
     "endmodule\n"},
    {"module somefunction ("
     "input clk, input int   a, int b);endmodule",
     "module somefunction (\n"
     "    input     clk,\n"  // type missing
     "    input int a,\n"
     "          int b\n"
     ");\n"
     "endmodule\n"},
    {"module somefunction ("
     "input logic clk, input a, int b);endmodule",
     "module somefunction (\n"
     "    input logic clk,\n"
     "    input       a,\n"  // type missing
     "          int   b\n"   // direction missing
     ");\n"
     "endmodule\n"},
    {"module m;foo bar(.baz({larry, moe, curly}));endmodule",
     "module m;\n"
     "  foo bar (.baz({larry, moe, curly}));\n"
     "endmodule\n"},
    {"module m;foo bar(.baz({larry,// expand this\n"
     "moe, curly}));endmodule",
     "module m;\n"
     "  foo bar (\n"
     "      .baz({\n"
     "        larry,  // expand this\n"
     "        moe,\n"
     "        curly\n"
     "      })\n"
     "  );\n"
     "endmodule\n"},
    {"parameter priv_reg_t impl_csr[] = {\n"
     "// Machine mode mode CSR\n"
     "MVENDORID, //\n"
     "MARCHID,   //\n"
     "DSCRATCH0, //\n"
     "DSCRATCH1  //\n"
     "};",
     "parameter priv_reg_t impl_csr[] = {\n"
     "  // Machine mode mode CSR\n"
     "  MVENDORID,  //\n"
     "  MARCHID,  //\n"
     "  DSCRATCH0,  //\n"
     "  DSCRATCH1  //\n"
     "};\n"},
    {"parameter priv_reg_t impl_csr[] = {\n"
     "// Expand elements\n"
     "MVENDORID,\n"
     "MARCHID,\n"
     "DSCRATCH0,\n"
     "DSCRATCH1\n"
     "};",
     "parameter priv_reg_t impl_csr[] = {\n"
     "  // Expand elements\n"
     "  MVENDORID,\n"
     "  MARCHID,\n"
     "  DSCRATCH0,\n"
     "  DSCRATCH1\n"
     "};\n"},
    /* TODO(b/158131099): to fix these, reinterpret 'b' as a kPortDeclaration
    {"module somefunction ("
     "input logic clk, input a, b);endmodule",
     "module somefunction (\n"
     "    input logic clk,\n"
     "    input       a,\n"  // type missing
     "                b\n"  // type and direction missing
     ");\n"
     "endmodule\n"},
    {"module somefunction ("
     "input logic clk, int a, b);endmodule",
     "module somefunction (\n"
     "    input logic clk,\n"
     "          int   a,\n"  // direction missing
     "                b\n"  // type and direction missing
     ");\n"
     "endmodule\n"},
     */
    {"module foo(\n"
     "//c1\n"
     "input wire x , \n"
     "//c2\n"
     "output reg  yy\n"
     "//c3\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    //c1\n"
     "    input  wire x,\n"  // aligned, ignoring comments
     "    //c2\n"
     "    output reg  yy\n"
     "    //c3\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "//c1\n"
     "input wire x , \n"
     "//c2a\n"  // longer comment
     "//c2b\n"
     "output reg  yy\n"
     "//c3\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    //c1\n"
     "    input  wire x,\n"  // aligned, ignoring comments
     "    //c2a\n"           // note: separated by 2 lines of comments
     "    //c2b\n"
     "    output reg  yy\n"
     "    //c3\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "`ifdef   FOO\n"
     "input wire x , \n"
     " `else\n"
     "output reg  yy\n"
     " `endif\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "`ifdef FOO\n"
     "    input  wire x,\n"  // aligned, ignoring preprocessor conditionals
     "`else\n"
     "    output reg  yy\n"
     "`endif\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "input w , \n"
     "`define   FOO BAR\n"
     "input wire x , \n"
     " `include  \"stuff.svh\"\n"
     "output reg  yy\n"
     " `undef    FOO\n"
     "output zz\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    input       w,\n"  // aligned, ignoring preprocessor directives
     "    `define FOO BAR\n"
     "    input  wire x,\n"
     "    `include \"stuff.svh\"\n"
     "    output reg  yy\n"
     "    `undef FOO\n"
     "    output      zz\n"  // aligned, ignoring preprocessor directives
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "input wire x , \n  \n"  // blank line, separating alignment groups
     "output reg  yy\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    input wire x,\n"  // not aligned, due to blank line separating groups
     "\n"
     "    output reg yy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"
     "input wire x1 [r:s],\n"
     "input [p:q] x2 , \n  \n"  // blank line, separating alignment groups
     "output reg  [jj:kk]yy1,\n"
     "output pkg::barr_t [mm:nn] yy2\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    input wire       x1[r:s],\n"  // aligned in this group, but not across
                                        // groups
     "    input      [p:q] x2,\n"
     "\n"
     "    output reg         [jj:kk] yy1,\n"
     "    output pkg::barr_t [mm:nn] yy2\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo(\n"  // same as previous, with comments
     " //c1\n"
     "input wire x1 [r:s],\n"
     "input [p:q] x2 , \n"
     " //c2\n\n"  // blank line, separating alignment groups
     " //c3\n"
     "output reg  [jj:kk]yy1,\n"
     " //c4\n"
     "output pkg::barr_t [mm:nn] yy2\n"
     ") ;endmodule:foo\n",
     "module foo (\n"
     "    //c1\n"
     "    input wire       x1[r:s],\n"  // aligned in this group, but not across
                                        // groups
     "    input      [p:q] x2,\n"
     "    //c2\n"
     "\n"
     "    //c3\n"
     "    output reg         [jj:kk] yy1,\n"
     "    //c4\n"
     "    output pkg::barr_t [mm:nn] yy2\n"
     ");\n"
     "endmodule : foo\n"},

    {// align null-statement (issue #824)
     "class sample;"
     "bit a;;"
     "bit b;"
     "endclass",
     "class sample;\n"
     "  bit a;\n"
     "  ;\n"
     "  bit b;\n"
     "endclass\n"},
    {"class sample;"
     "bit a;;"
     "endclass",
     "class sample;\n"
     "  bit a;\n"
     "  ;\n"
     "endclass\n"},
    {"class sample;"
     "bit a;"
     "bit b;;"
     "endclass",
     "class sample;\n"
     "  bit a;\n"
     "  bit b;\n"
     "  ;\n"
     "endclass\n"},

    {// aligning here just barely fits in the 40col limit
     "module foo(  input int signed x [a:b],"
     "output reg [mm:nn] yy) ;endmodule:foo\n",
     "module foo (\n"
     // ---------------40col----------------->
     "    input  int signed         x [a:b],\n"  // aligned, still fits
     "    output reg        [mm:nn] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {// when aligning would result in exceeding column limit, don't align for
     // now
     "module foo(  input int signed x [aa:bb],"
     "output reg [mm:nn] yy) ;endmodule:foo\n",
     "module foo (\n"
     // ---------------40col----------------->
     //   input  int signed         x [aa:bb],\n"
     //   output reg        [mm:nn] yy\n"
     "    input  int signed         x [aa:bb],\n"  // aligned, still fits
     "    output reg        [mm:nn] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {// when aligning would result in exceeding column limit, don't align for
     // now
     "module foo(  input int signed x [aa:bb],"
     "output reg [mm:nn] yyy) ;endmodule:foo\n",
     "module foo (\n"
     // ---------------40col----------------->
     //   input  int signed         x  [aa:bb],\n"  // over limit, by comma
     //   output reg        [mm:nn] yyy\n"
     "    input int signed x[aa:bb],\n"  // aligned would be 41 columns
     "    output reg [mm:nn] yyy\n"
     ");\n"
     "endmodule : foo\n"},
    {// when aligning would result in exceeding column limit, don't align for
     // now
     "module foo(  input int signed x [a:b],//c\n"
     "output reg [m:n] yy) ;endmodule:foo\n",
     "module foo (\n"
     // ---------------40col---------------->
     //   input  int signed       x [a:b],  //c\n"  // over limit, by comment
     //   output reg        [m:n] yy\n"
     "    input int signed x[a:b],  //c\n"  // aligned would be 42 columns
     "    output reg [m:n] yy\n"
     ");\n"
     "endmodule : foo\n"},
    {// aligning interfaces in port headers like types
     // TODO(b/161181877): flush interface port type left (multi-column)
     "module foo(  input clk , inter.face yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input            clk,\n"  // aligned
     "          inter.face yy\n"
     ");\n"
     "endmodule : foo\n"},
    {// aligning interfaces in port headers like types
     // TODO(b/161181877): flush interface port type left (multi-column)
     "module foo(  input wire   clk , inter.face yy) ;endmodule:foo\n",
     "module foo (\n"
     "    input wire       clk,\n"  // aligned
     "          inter.face yy\n"
     ");\n"
     "endmodule : foo\n"},

    // module local variable/net declaration alignment test cases
    {"module m;\n"
     "logic a;\n"
     "bit b;\n"
     "endmodule\n",
     "module m;\n"
     "  logic a;\n"
     "  bit   b;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic a;\n"
     "bit b;\n"
     "initial e=f;\n"  // separates alignment groups
     "wire c;\n"
     "bit d;\n"
     "endmodule\n",
     "module m;\n"
     "  logic a;\n"
     "  bit   b;\n"
     "  initial e = f;\n"  // separates alignment groups
     "  wire c;\n"
     "  bit  d;\n"
     "endmodule\n"},
    {"module m;\n"
     "// hello a\n"
     "logic a;\n"
     "// hello b\n"
     "bit b;\n"
     "endmodule\n",
     "module m;\n"
     "  // hello a\n"
     "  logic a;\n"
     "  // hello b\n"
     "  bit   b;\n"  // aligned across comments
     "endmodule\n"},
    {"module m;\n"
     "// hello a\n"
     "logic a;\n"
     "\n"  // extra blank line
     "// hello b\n"
     "bit b;\n"
     "endmodule\n",
     "module m;\n"
     "  // hello a\n"
     "  logic a;\n"
     "\n"              // extra blank line
     "  // hello b\n"  // aligned across blank lines
     "  bit   b;\n"    // aligned across comments
     "endmodule\n"},
    {"module m;\n"
     "logic [x:y]a;\n"  // packed dimensions
     "bit b;\n"
     "endmodule\n",
     "module m;\n"
     "  logic [x:y] a;\n"
     "  bit         b;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic a;\n"
     "bit [pp:qq]b;\n"  // packed dimensions
     "endmodule\n",
     "module m;\n"
     "  logic         a;\n"
     "  bit   [pp:qq] b;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic [x:y]a;\n"  // packed dimensions
     "bit [pp:qq]b;\n"  // packed dimensions
     "endmodule\n",
     "module m;\n"
     "  logic [  x:y] a;\n"
     "  bit   [pp:qq] b;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic [x:y]a;\n"         // packed dimensions
     "wire [pp:qq] [e:f]b;\n"  // packed dimensions, 2D
     "endmodule\n",
     "module m;\n"
     "  logic [  x:y]      a;\n"
     "  wire  [pp:qq][e:f] b;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic a [x:y];\n"  // unpacked dimensions
     "bit bbb;\n"
     "endmodule\n",
     "module m;\n"
     "  logic a   [x:y];\n"
     "  bit   bbb;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic aaa ;\n"
     "wire w [yy:zz];\n"  // unpacked dimensions
     "endmodule\n",
     "module m;\n"
     "  logic aaa;\n"
     "  wire  w   [yy:zz];\n"
     "endmodule\n"},
    {"module m;\n"
     "logic aaa [s:t] ;\n"  // unpacked dimensions
     "wire w [yy:zz];\n"    // unpacked dimensions
     "endmodule\n",
     "module m;\n"
     "  logic aaa[  s:t];\n"
     "  wire  w  [yy:zz];\n"
     "endmodule\n"},
    {"module m;\n"
     "logic aaa [s:t] ;\n"     // unpacked dimensions
     "wire w [yy:zz][u:v];\n"  // unpacked dimensions, 2D
     "endmodule\n",
     "module m;\n"
     "  logic aaa[  s:t];\n"
     "  wire  w  [yy:zz] [u:v];\n"
     // TODO(b/165323560): unwanted space between unpacked dimensions of 'w'
     "endmodule\n"},
    {"module m;\n"
     "qqq::rrr s;\n"     // user-defined type
     "wire [pp:qq]w;\n"  // packed dimensions
     "endmodule\n",
     "module m;\n"
     "  qqq::rrr         s;\n"
     "  wire     [pp:qq] w;\n"
     "endmodule\n"},
    {"module m;\n"
     "qqq#(rr) s;\n"     // parameterized type
     "wire [pp:qq]w;\n"  // packed dimensions
     "endmodule\n",
     "module m;\n"
     "  qqq #(rr)         s;\n"
     "  wire      [pp:qq] w;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic a;\n"
     "bit b;\n"
     "my_module  my_inst( );\n"  // module instance separates alignment groups
     "wire c;\n"
     "bit d;\n"
     "endmodule\n",
     "module m;\n"
     "  logic a;\n"  // these two are aligned
     "  bit   b;\n"
     "  my_module my_inst ();\n"  // module instance separates alignment groups
     "  wire c;\n"                // these two are aligned
     "  bit  d;\n"
     "endmodule\n"},
    {"module m;\n"
     "logic aaa = expr1;\n"
     "bit b = expr2;\n"
     "endmodule\n",
     "module m;\n"
     "  logic aaa = expr1;\n"
     "  bit   b = expr2;\n"  // no alignment at '=' yet
     "endmodule\n"},
    {"module mattr;\n"
     "(* attr1=\"value1\" *)\n"  // attribute ignored
     "ex_input_pins_t ex_input_pins;\n"
     "(* attr2=\"value2\" *)\n"  // attribute ignored
     "ex_output_pins_t ex_output_pins;\n"
     "(* attr3=\"value3\" *)\n"  // attribute ignored
     "ex wrap_ex ( );\n"
     "endmodule\n",
     "module mattr;\n"
     "  (* attr1=\"value1\" *)\n"           // indented
     "  ex_input_pins_t  ex_input_pins;\n"  // aligned
     "  (* attr2=\"value2\" *)\n"           // indented
     "  ex_output_pins_t ex_output_pins;\n"
     "  (* attr3=\"value3\" *)\n"  // indented
     "  ex wrap_ex ();\n"
     "endmodule\n"},
    {"module mattr;\n"
     "ex_input_pins_t ex_input_pins;\n"
     "ex_output_pins_t ex_output_pins;\n"
     "(* package_definition=\"ex_pkg\" *)\n"  // attribute ignored
     "ex wrap_ex (\n"
     ".clk(ex_input_pins.clk),\n"
     ".rst(ex_input_pins.rst),\n"
     ".in(ex_input_pins.in)\n"
     ");\n"
     "endmodule\n",
     "module mattr;\n"
     "  ex_input_pins_t  ex_input_pins;\n"  // aligned
     "  ex_output_pins_t ex_output_pins;\n"
     "  (* package_definition=\"ex_pkg\" *)\n"  // indented
     "  ex wrap_ex (\n"
     "      .clk(ex_input_pins.clk),\n"
     "      .rst(ex_input_pins.rst),\n"
     "      .in (ex_input_pins.in)\n"  // aligned
     "  );\n"
     "endmodule\n"},
    {"module test;\n"
     "bind entropy_src tlul_assert #(.EndpointType(\"Device\"))\n"
     "tlul_assert_device (.clk_i, .rst_ni, .h2d(tl_i), .d2h(tl_o));\n"
     "endmodule\n",
     "module test;\n"
     "  bind entropy_src tlul_assert #(\n"
     "      .EndpointType(\"Device\")\n"
     "  ) tlul_assert_device (\n"
     "      .clk_i,\n"
     "      .rst_ni,\n"
     "      .h2d(tl_i),\n"
     "      .d2h(tl_o)\n"
     "  );\n"
     "endmodule\n"},
    {"module test;\n"
     "bind entropy_src tlul_assert #(.EndpointType(\"Device\"))\n"
     "tlul_assert_device (.clk_i, .rst_ni,\n\n .h2d(tl_i),\n\n .d2h(tl_o));\n"
     "endmodule\n",
     "module test;\n"
     "  bind entropy_src tlul_assert #(\n"
     "      .EndpointType(\"Device\")\n"
     "  ) tlul_assert_device (\n"
     "      .clk_i,\n"
     "      .rst_ni,\n"
     "\n"
     "      .h2d(tl_i),\n"
     "\n"
     "      .d2h(tl_o)\n"
     "  );\n"
     "endmodule\n"},
    {"bind expand_me long_name #(.W(W_CONST), .D(D_CONST)) instaaance_name ("
     ".in(iiiiiiiin),\n\n .out(ooooooout),\n .clk(ccccccclk),\n\n"
     ".in1234 (in),\n //c1\n .out1234(out),\n .clk1234(clk),);",
     "bind expand_me long_name #(\n"
     "    .W(W_CONST),\n"
     "    .D(D_CONST)\n"
     ") instaaance_name (\n"
     "    .in(iiiiiiiin),\n"
     "\n"
     "    .out(ooooooout),\n"
     "    .clk(ccccccclk),\n"
     "\n"
     "    .in1234 (in),\n"
     "    //c1\n"
     "    .out1234(out),\n"
     "    .clk1234(clk),\n"
     ");\n"},
    {"initial // clock generation\n begin\n clk = 0;\n forever begin\n"
     "#4ns clk = !clk;\n end\n end\n",
     "initial  // clock generation\n"
     "  begin\n"
     "    clk = 0;\n"
     "    forever begin\n"
     "      #4ns clk = !clk;\n"
     "    end\n"
     "  end\n"},
    {"module foo #(int x,int y) ;endmodule:foo\n",  // parameters
     "module foo #(\n"
     "    int x,\n"
     "    int y\n"
     ");\n"  // each parameter on its own line
     "endmodule : foo\n"},
    {"module foo #(int x)(input y) ;endmodule:foo\n",
     // parameter and port
     "module foo #(\n"
     "    int x\n"
     ") (\n"
     "    input y\n"
     ");\n"  // each paramater and port item should be on its own line
     "endmodule : foo\n"},
    {"module foo #(parameter int x,parameter int y) ;endmodule:foo\n",
     // parameters don't fit (also should be on its own line)
     "module foo #(\n"
     "    parameter int x,\n"
     "    parameter int y\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo #(parameter int xxxx,parameter int yyyy) ;endmodule:foo\n",
     // parameters don't fit
     "module foo #(\n"
     "    parameter int xxxx,\n"
     "    parameter int yyyy\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo #(parameter int x = $clog2  (N) ,parameter int y ) "
     ";endmodule:foo\n",
     // parameters don't fit
     "module foo #(\n"
     "    parameter int x = $clog2(N),\n"  // no space after $clog2
     "    parameter int y\n"
     ");\n"
     "endmodule : foo\n"},
    {"module foo #(//comment\n"
     "parameter bar =1,\n"
     "localparam baz =2"
     ") ();"
     "endmodule",
     "module foo #(  //comment\n"
     "    parameter  bar = 1,\n"
     "    localparam baz = 2\n"
     ") ();\n"
     "endmodule\n"},
    {"module foo #("
     "parameter  bar =1,//comment\n"
     "localparam baz =2"
     ") ();"
     "endmodule",
     "module foo #(\n"
     "    parameter  bar = 1,  //comment\n"
     "    localparam baz = 2\n"
     ") ();\n"
     "endmodule\n"},
    {"module foo #("
     "parameter  bar =1,"
     "localparam baz =2//comment\n"
     ") ();"
     "endmodule",
     "module foo #(\n"
     "    parameter  bar = 1,\n"
     "    localparam baz = 2   //comment\n"
     ") ();\n"
     "endmodule\n"},
    {"module foo #("
     "parameter  bar =1//comment\n"
     ",localparam baz =2\n"
     ") ();"
     "endmodule",
     "module foo #(\n"
     "      parameter  bar = 1  //comment\n"
     "    , localparam baz = 2\n"
     ") ();\n"
     "endmodule\n"},
    {"module foo;"
     // fit in one line
     "parameter int i = '{\n"
     "1,\n"
     "2,\n"
     "3\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter int i = '{1, 2, 3};\n"
     "endmodule\n"},
    {"module foo;"
     // too long for one line, expand
     "localparam logic [63:0] RC[24] = '{\n"
     "64'h 1,\n"
     "64'h 2,\n"
     "64'h 3\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  localparam logic [63:0] RC[24] = '{\n"
     "      64'h1,\n"
     "      64'h2,\n"
     "      64'h3\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     "parameter int i = '{\n"
     // force expansion
     "1, //\n"
     "2,\n"
     "3\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter int i = '{\n"
     "      1,  //\n"
     "      2,\n"
     "      3\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     "localparam logic [63:0] RC[24] = '{\n"
     "64'h 0000_0000_0000_0001, // 0\n"
     "64'h 0000_0000_0000_8082, // 1\n"
     "64'h 8000_0000_8000_8008 // 23\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  localparam logic [63:0] RC[24] = '{\n"
     "      64'h0000_0000_0000_0001,  // 0\n"
     "      64'h0000_0000_0000_8082,  // 1\n"
     "      64'h8000_0000_8000_8008  // 23\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     // nest two patterns
     "parameter logic [11:0] i = '{\n"
     "'{1,2,3},\n"
     "'{1,2,3}\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter logic [11:0] i = '{\n"
     "      '{1, 2, 3},\n"
     "      '{1, 2, 3}\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     // nest two patterns, expand interior
     "parameter logic [11:0] i = '{\n"
     "'{1, //\n"
     " 2,3},\n"
     "'{1,2,3}\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter logic [11:0] i = '{\n"
     "      '{\n"
     "          1,  //\n"
     "          2,\n"
     "          3\n"
     "      },\n"
     "      '{1, 2, 3}\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     // nest two patterns, expand both
     "parameter nest [2] i = '{\n"
     "'{first : 32'h0000_0001,\n"
     "  second : 32'h0000_0011,\n"
     "  third: 32'h0000_0111},\n"
     "'{first : 32'h1000_0001,\n"
     "  second : 32'h1000_0011,\n"
     "  third: 32'h1000_0111}\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter nest [2] i = '{\n"
     "      '{\n"
     "          first : 32'h0000_0001,\n"
     "          second : 32'h0000_0011,\n"
     "          third: 32'h0000_0111\n"
     "      },\n"
     "      '{\n"
     "          first : 32'h1000_0001,\n"
     "          second : 32'h1000_0011,\n"
     "          third: 32'h1000_0111\n"
     "      }\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     // nest three patterns
     "parameter logic [11:0] i = '{\n"
     "'{'{1,2,3},4}\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter logic [11:0] i = '{\n"
     "      '{'{1, 2, 3}, 4}\n"
     "  };\n"
     "endmodule\n"},
    {"module foo;"
     // nest three patterns, expand interior
     "parameter logic [11:0] i = '{\n"
     "'{\n"
     "'{first : 32'h0000_0001,\n"
     "  second : 32'h0000_0011,\n"
     "  third: 32'h0000_0111},\n"
     "  4},\n"
     "  5,\n"
     "  '{1,2,3}\n"
     "};\n"
     "endmodule",
     "module foo;\n"
     "  parameter logic [11:0] i = '{\n"
     "      '{\n"
     "          '{\n"
     "              first : 32'h0000_0001,\n"
     "              second : 32'h0000_0011,\n"
     "              third: 32'h0000_0111\n"
     "          },\n"
     "          4\n"
     "      },\n"
     "      5,\n"
     "      '{1, 2, 3}\n"
     "  };\n"
     "endmodule\n"},
    {"module    top;"
     "foo#(  \"test\"  ) foo(  );"
     "bar#(  \"test\"  ,5) bar(  );"
     "endmodule\n",
     "module top;\n"
     "  foo #(\"test\") foo ();\n"  // module instantiation, string arg
     "  bar #(\"test\", 5) bar ();\n"
     "endmodule\n"},
    {"module    top;"
     "foo#(  `\"test`\"  ) foo(  );"
     "bar#(  `\"test`\"  ,5) bar(  );"
     "endmodule\n",
     "module top;\n"
     "  foo #(`\"test`\") foo ();\n"  // module instantiation, eval string arg
     "  bar #(`\"test`\", 5) bar ();\n"
     "endmodule\n"},
    {"`ifdef FOO\n"
     "  module bar;endmodule\n"
     "`endif\n",
     "`ifdef FOO\n"
     "module bar;\n"
     "endmodule\n"
     "`endif\n"},
    {"`ifdef FOO\n"
     "  module bar;endmodule\n"
     "`else module baz;endmodule\n"
     "`endif\n",
     "`ifdef FOO\n"
     "module bar;\n"
     "endmodule\n"
     "`else\n"
     "module baz;\n"
     "endmodule\n"
     "`endif\n"},
    {"`ifdef FOO\n"
     "  module bar;endmodule\n"
     "`else /* glue me */ module baz;endmodule\n"
     "`endif\n",
     "`ifdef FOO\n"
     "module bar;\n"
     "endmodule\n"
     "`else  /* glue me */\n"
     "module baz;\n"
     "endmodule\n"
     "`endif\n"},
    {"`ifdef FOO\n"
     "  module bar;endmodule\n"
     "`else// different unit\n"
     "  module baz;endmodule\n"
     "`endif\n",
     "`ifdef FOO\n"
     "module bar;\n"
     "endmodule\n"
     "`else  // different unit\n"
     "module baz;\n"
     "endmodule\n"
     "`endif\n"},

    // unary: + - !  ~ & | ^  ~& ~| ~^ ^~
    {"module m;foo bar(.x(-{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(-{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(!{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(!{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(~{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(~{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(&{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(&{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(|{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(|{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(^{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(^{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(~&{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(~&{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(~|{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(~|{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(~^{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(~^{a, b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(^~{a,b}));endmodule",
     "module m;\n"
     "  foo bar (.x(^~{a, b}));\n"
     "endmodule\n"},

    // binary: + - * / % & | ^ ^~ ~^ && ||
    {"module m;foo bar(.x(a+b));endmodule",
     "module m;\n"
     "  foo bar (.x(a + b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a-b));endmodule",
     "module m;\n"
     "  foo bar (.x(a - b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a*b));endmodule",
     "module m;\n"
     "  foo bar (.x(a * b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a/b));endmodule",
     "module m;\n"
     "  foo bar (.x(a / b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a%b));endmodule",
     "module m;\n"
     "  foo bar (.x(a % b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a&b));endmodule",
     "module m;\n"
     "  foo bar (.x(a & b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a|b));endmodule",
     "module m;\n"
     "  foo bar (.x(a | b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a^b));endmodule",
     "module m;\n"
     "  foo bar (.x(a ^ b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a^~b));endmodule",
     "module m;\n"
     "  foo bar (.x(a ^~ b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a~^b));endmodule",
     "module m;\n"
     "  foo bar (.x(a ~^ b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a&&b));endmodule",
     "module m;\n"
     "  foo bar (.x(a && b));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a||b));endmodule",
     "module m;\n"
     "  foo bar (.x(a || b));\n"
     "endmodule\n"},

    // {a} op {b}
    {"module m;foo bar(.x({a}+{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} + {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}-{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} - {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}*{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} * {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}/{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} / {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}%{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} % {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}&{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} & {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}|{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} | {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}^{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} ^ {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}^~{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} ^~ {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}~^{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} ~^ {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}&&{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} && {b}));\n"
     "endmodule\n"},
    {"module m;foo bar(.x({a}||{b}));endmodule",
     "module m;\n"
     "  foo bar (.x({a} || {b}));\n"
     "endmodule\n"},

    // (a) op (b)
    {"module m;foo bar(.x((a)+(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) + (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)-(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) - (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)*(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) * (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)/(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) / (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)%(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) % (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)&(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) & (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)|(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) | (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)^(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) ^ (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)^~(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) ^~ (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)~^(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) ~^ (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)&&(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) && (b)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a)||(b)));endmodule",
     "module m;\n"
     "  foo bar (.x((a) || (b)));\n"
     "endmodule\n"},

    // a[b] op c
    {"module m;foo bar(.x(a[b]+c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] + c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]-c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] - c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]*c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] * c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]/c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] / c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]%c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] % c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]&c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] & c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]|c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] | c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]^c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] ^ c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]^~c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] ^~ c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]~^c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] ~^ c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]&&c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] && c));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b]||c));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] || c));\n"
     "endmodule\n"},

    // misc
    {"module m;foo bar(.x(a[1:0]^b[2:1]));endmodule",
     "module m;\n"
     "  foo bar (.x(a[1:0] ^ b[2:1]));\n"
     "endmodule\n"},

    {"module m;foo bar(.x(a[b] | b[c]));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] | b[c]));\n"
     "endmodule\n"},
    {"module m;foo bar(.x(a[b] & b[c]));endmodule",
     "module m;\n"
     "  foo bar (.x(a[b] & b[c]));\n"
     "endmodule\n"},

    {"module m;foo bar(.x((a^c)^(b^ ~c)));endmodule",
     "module m;\n"
     "  foo bar (.x((a ^ c) ^ (b ^ ~c)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a^c)^(b^~c)));endmodule",
     "module m;\n"
     "  foo bar (.x((a ^ c) ^ (b ^~ c)));\n"
     "endmodule\n"},
    {"module m;foo bar(.x((a^{c,d})^(b^^{c,d})));endmodule",
     "module m;\n"
     "  foo bar (\n"
     "      .x((a ^ {c, d}) ^ (b ^ ^{c, d}))\n"
     "  );\n"
     "endmodule\n"},

    {// module items mixed with preprocessor conditionals and comments
     "    module foo;\n"
     "// comment1\n"
     "  `ifdef SIM\n"
     "// comment2\n"
     " `elsif SYN\n"
     " // comment3\n"
     "       `else\n"
     "// comment4\n"
     " `endif\n"
     "// comment5\n"
     "  endmodule",
     "module foo;\n"
     "  // comment1\n"
     "`ifdef SIM\n"
     "  // comment2\n"
     "`elsif SYN\n"
     "  // comment3\n"
     "`else\n"
     "  // comment4\n"
     "`endif\n"
     "  // comment5\n"
     "endmodule\n"},
    {"  module bar;wire foo;reg bear;endmodule\n",
     "module bar;\n"
     "  wire foo;\n"
     "  reg  bear;\n"  // aligned
     "endmodule\n"},
    {" module bar;initial\nbegin a<=b . c ; end endmodule\n",
     "module bar;\n"
     "  initial begin\n"
     "    a <= b.c;\n"
     "  end\n"
     "endmodule\n"},
    {"  module bar;for(genvar i = 0 ; i<N ; ++ i  ) begin end endmodule\n",
     "module bar;\n"
     "  for (genvar i = 0; i < N; ++i) begin\n"
     "  end\n"
     "endmodule\n"},
    {"  module bar;for(genvar i = 0 ; i!=N ; i ++  ) begin "
     "foo f;end endmodule\n",
     "module bar;\n"
     "  for (genvar i = 0; i != N; i++) begin\n"
     "    foo f;\n"
     "  end\n"
     "endmodule\n"},
    {
        "module block_generate;\n"
        "`ASSERT(blah)\n"
        "generate endgenerate endmodule\n",
        "module block_generate;\n"
        "  `ASSERT(blah)\n"
        "  generate\n"
        "  endgenerate\n"
        "endmodule\n",
    },
    {
        "module conditional_generate;\n"
        "if(foo)  ; \t"  // null action
        "endmodule\n",
        "module conditional_generate;\n"
        "  if (foo);\n"
        "endmodule\n",
    },
    {
        "module conditional_generate;\n"
        "if(foo[a*b+c])  ; \t"  // null action
        "endmodule\n",
        "module conditional_generate;\n"
        "  if (foo[a*b+c]);\n"  // allow compact expressions inside []
        "endmodule\n",
    },
    {
        "module conditional_generate;\n"
        "if(foo)begin\n"
        "`ASSERT()\n"
        "`COVER()\n"
        " end\n"
        "endmodule\n",
        "module conditional_generate;\n"
        "  if (foo) begin\n"
        "    `ASSERT()\n"
        "    `COVER()\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module conditional_generate;\n"
        "`ASSERT()\n"
        "if(foo)begin\n"
        " end\n"
        "`COVER()\n"
        "endmodule\n",
        "module conditional_generate;\n"
        "  `ASSERT()\n"
        "  if (foo) begin\n"
        "  end\n"
        "  `COVER()\n"
        "endmodule\n",
    },
    {
        "module conditional_generate;\n"
        "if(foo)begin\n"
        "           // comment1\n"
        " // comment2\n"
        " end\n"
        "endmodule\n",
        "module conditional_generate;\n"
        "  if (foo) begin\n"
        "    // comment1\n"
        "    // comment2\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;"
        "for(genvar i=0; ;)\n; "   // null generate statement
        "for(genvar j=0 ;; )\n; "  // null generate statement
        "endmodule",
        "module m;\n"
        "  for (genvar i = 0;;);\n"
        "  for (genvar j = 0;;);\n"
        "endmodule\n",
    },
    {
        "module m ;"
        "for (genvar f = 0; f < N; f++) begin "
        "assign x = y; assign y = z;"
        "end endmodule",
        "module m;\n"
        "  for (genvar f = 0; f < N; f++) begin\n"
        "    assign x = y;\n"
        "    assign y = z;\n"
        "  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;"
        "endmodule\n",
        "module event_control;\n"
        "  always @(posedge clk) z <= y;\n"
        "endmodule\n",
    },
    {
        "module always_if ;"
        "always@ ( posedge   clk ) if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @(posedge clk)\n"  // doesn't fit
        "    if (expr)\n"
        "      z <= y;\n"
        "endmodule\n",
    },
    {
        "module always_if ;"
        "always@*  if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @* if (expr) z <= y;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else ;"
        "always@*  if (expr) z<=y; else g<=0;"
        "endmodule\n",
        "module always_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"  // fits
        "    else g <= 0;\n"       // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;"
        "endmodule\n",
        "module always_if_else_if;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if_else ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;else h<=1;"
        "endmodule\n",
        "module always_if_else_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "    else h <= 1;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(b,  c)"
        "  for (;;)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(b, c) for (;;) s = y;\n"  // fits
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  for (i=0;i<k;++i)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    for (i = 0; i < k; ++i)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  repeat (jj+kk)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    repeat (jj + kk)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  foreach(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    foreach (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  while(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    while (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  do s=y;while(jj[kk]);\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    do\n"
        "      s = y;\n"
        "    while (jj[kk]);\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)  \n"
        "  case(jj)\tS:s = y;endcase\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    case (jj)\n"
        "      S: s = y;\n"
        "    endcase\n"
        "endmodule\n",
    },

    {
        "module always_if ;"
        "always@ ( posedge   clk ) if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @(posedge clk)\n"  // doesn't fit
        "    if (expr)\n"
        "      z <= y;\n"
        "endmodule\n",
    },
    {
        "module always_if ;"
        "always@*  if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @* if (expr) z <= y;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else ;"
        "always@*  if (expr) z<=y; else g<=0;"
        "endmodule\n",
        "module always_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"  // fits
        "    else g <= 0;\n"       // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;"
        "endmodule\n",
        "module always_if_else_if;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if_else ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;else h<=1;"
        "endmodule\n",
        "module always_if_else_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "    else h <= 1;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(b,  c)"
        "  for (;;)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(b, c) for (;;) s = y;\n"  // fits
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  for (i=0;i<k;++i)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    for (i = 0; i < k; ++i)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  repeat (jj+kk)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    repeat (jj + kk)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  foreach(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    foreach (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  while(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    while (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  do s=y;while(jj[kk]);\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    do\n"
        "      s = y;\n"
        "    while (jj[kk]);\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)  \n"
        "  case(jj)\tS:s = y;endcase\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    case (jj)\n"
        "      S: s = y;\n"
        "    endcase\n"
        "endmodule\n",
    },

    {
        "module always_if ;"
        "always@ ( posedge   clk ) if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @(posedge clk)\n"  // doesn't fit
        "    if (expr)\n"
        "      z <= y;\n"
        "endmodule\n",
    },
    {
        "module always_if ;"
        "always@*  if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @* if (expr) z <= y;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else ;"
        "always@*  if (expr) z<=y; else g<=0;"
        "endmodule\n",
        "module always_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"  // fits
        "    else g <= 0;\n"       // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;"
        "endmodule\n",
        "module always_if_else_if;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if_else ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;else h<=1;"
        "endmodule\n",
        "module always_if_else_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "    else h <= 1;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(b,  c)"
        "  for (;;)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(b, c) for (;;) s = y;\n"  // fits
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  for (i=0;i<k;++i)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    for (i = 0; i < k; ++i)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  repeat (jj+kk)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    repeat (jj + kk)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  foreach(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    foreach (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  while(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    while (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  do s=y;while(jj[kk]);\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    do\n"
        "      s = y;\n"
        "    while (jj[kk]);\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)  \n"
        "  case(jj)\tS:s = y;endcase\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    case (jj)\n"
        "      S: s = y;\n"
        "    endcase\n"
        "endmodule\n",
    },

    {
        "module always_if ;"
        "always@ ( posedge   clk ) if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @(posedge clk)\n"  // doesn't fit
        "    if (expr)\n"
        "      z <= y;\n"
        "endmodule\n",
    },
    {
        "module always_if ;"
        "always@*  if (expr) z<=y;"
        "endmodule\n",
        "module always_if;\n"
        "  always @* if (expr) z <= y;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else ;"
        "always@*  if (expr) z<=y; else g<=0;"
        "endmodule\n",
        "module always_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"  // fits
        "    else g <= 0;\n"       // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;"
        "endmodule\n",
        "module always_if_else_if;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "endmodule\n",
    },
    {
        "module \talways_if_else_if_else ;"
        "always@*  if (expr) z<=y; else if (w) g<=0;else h<=1;"
        "endmodule\n",
        "module always_if_else_if_else;\n"
        "  always @*\n"
        "    if (expr) z <= y;\n"    // fits
        "    else if (w) g <= 0;\n"  // fits
        "    else h <= 1;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(b,  c)"
        "  for (;;)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(b, c) for (;;) s = y;\n"  // fits
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  for (i=0;i<k;++i)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    for (i = 0; i < k; ++i)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  repeat (jj+kk)\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    repeat (jj + kk)\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  foreach(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    foreach (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  while(jj[kk])\ts = y;"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    while (jj[kk])\n"
        "      s = y;\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)"
        "  do s=y;while(jj[kk]);\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    do\n"
        "      s = y;\n"
        "    while (jj[kk]);\n"
        "endmodule\n",
    },
    {
        "module m;\n"
        "always @(posedge clk)  \n"
        "  case(jj)\tS:s = y;endcase\t"
        "endmodule",
        "module m;\n"
        "  always @(posedge clk)\n"
        "    case (jj)\n"
        "      S: s = y;\n"
        "    endcase\n"
        "endmodule\n",
    },

    {
        // begin/end with labels
        "module m ;initial  begin:yyy\tend:yyy endmodule",
        "module m;\n"
        "  initial begin : yyy\n"
        "  end : yyy\n"
        "endmodule\n",
    },
    {
        // conditional generate begin/end with labels
        "module m ;if\n( 1)  begin:yyy\tend:yyy endmodule",
        "module m;\n"
        "  if (1) begin : yyy\n"
        "  end : yyy\n"
        "endmodule\n",
    },
    {
        // begin/end with labels, nested
        "module m ;initial  begin:yyy if(1)begin:zzz "
        "end:zzz\tend:yyy endmodule",
        "module m;\n"
        "  initial begin : yyy\n"
        "    if (1) begin : zzz\n"
        "    end : zzz\n"
        "  end : yyy\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin #  1 x<=y ;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    #1 x <= y;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin x<=y ;  y<=z;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    x <= y;\n"
        "    y <= z;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin # 10 x<=y ;  # 20  y<=z;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    #10 x <= y;\n"
        "    #20 y <= z;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        // qualified variables
        "module m ;initial  begin automatic int a; "
        " static byte s=0;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    automatic int a;\n"
        "    static byte   s = 0;\n"  // aligned
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin automatic int a,b; "
        " static byte s,t;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    automatic int a, b;\n"
        "    static byte s, t;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin   static byte a=1,b=0;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    static byte a = 1, b = 0;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin   const int a=0;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    const int a = 0;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin automatic   const int a=0;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    automatic const int a = 0;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin const  var automatic  int a=0;end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    const var automatic int a = 0;\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin static byte s  ={<<{a}};end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    static byte s = {<<{a}};\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m ;initial  begin static int s  ={>>4{a}};end endmodule",
        "module m;\n"
        "  initial begin\n"
        "    static int s = {>>4{a}};\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m; final  assert   (expr ) ;endmodule",
        "module m;\n"
        "  final assert (expr);\n"
        "endmodule\n",
    },
    {
        "module m; final  begin\tassert   (expr ) ;end  endmodule",
        "module m;\n"
        "  final begin\n"
        "    assert (expr);\n"
        "  end\n"
        "endmodule\n",
    },
    {
        "module m; final  assume   (expr ) ;endmodule",
        "module m;\n"
        "  final assume (expr);\n"
        "endmodule\n",
    },
    {
        "module m; final  cover   (expr ) ;endmodule",
        "module m;\n"
        "  final cover (expr);\n"
        "endmodule\n",
    },
    {
        // two consecutive clocking declarations in modules
        " module mcd ; "
        "clocking   cb @( posedge clk);\t\tendclocking "
        "clocking cb2   @ (posedge  clk\n); endclocking endmodule",
        "module mcd;\n"
        "  clocking cb @(posedge clk);\n"
        "  endclocking\n"
        "  clocking cb2 @(posedge clk);\n"
        "  endclocking\n"
        "endmodule\n",
    },
    {
        // two consecutive clocking declarations in modules, with end labels
        " module mcd ; "
        "clocking   cb @( posedge clk);\t\tendclocking:  cb "
        "clocking cb2   @ (posedge  clk\n); endclocking   :cb2 endmodule",
        "module mcd;\n"
        "  clocking cb @(posedge clk);\n"
        "  endclocking : cb\n"
        "  clocking cb2 @(posedge clk);\n"
        "  endclocking : cb2\n"
        "endmodule\n",
    },
    {
        // clocking declarations with ports in modules
        " module mcd ; "
        "clocking cb   @ (posedge  clk\n); input a; output b; endclocking "
        "endmodule",
        "module mcd;\n"
        "  clocking cb @(posedge clk);\n"
        "    input a;\n"
        "    output b;\n"
        "  endclocking\n"
        "endmodule\n",
    },
    {
        // DPI import declarations in modules
        "module mdi;"
        "import   \"DPI-C\" function  int add(\n) ;"
        "import \"DPI-C\"\t\tfunction int\nsleep( input int secs );"
        "import \"DPI-C\"\t\tfunction int\nwake( input int secs, output bit "
        "[2:0] z);"
        "endmodule",
        "module mdi;\n"
        "  import \"DPI-C\" function int add();\n"
        "  import \"DPI-C\" function int sleep(\n"
        "    input int secs\n"
        "  );\n"
        "  import \"DPI-C\" function int wake(\n"
        "    input  int       secs,\n"
        "    output bit [2:0] z\n"
        "  );\n"
        "endmodule\n",
    },
    {
        // DPI export declarations in modules
        "module m;"
        "export \"DPI-C\" function get;"
        "export \"DPI-C\" function mhpmcounter_get;\n"
        "export \"DPI-C\"\t\tfunction int\nwake( input int secs, output bit "
        "[2:0] z);"
        "endmodule",
        "module m;\n"
        "  export \"DPI-C\" function get;\n"
        "  export \"DPI-C\"\n"
        "      function mhpmcounter_get;\n"  // doesn't fit in 40-col
        "  export \"DPI-C\" function int wake(\n"
        "    input  int       secs,\n"
        "    output bit [2:0] z\n"
        "  );\n"
        "endmodule\n",
    },
    {"import \"DPI-C\" context function void func(input bit impl_i,"
     "input bit op_i,"
     "input bit [5:0] mode_i,"
     "input bit [3:0][31:0] iv_i,"
     "input bit [2:0] key_len_i,"
     "input bit [7:0][31:0] key_i,"
     "input bit [7:0] data_i[],"
     "output bit [7:0] data_o[]);",
     "import \"DPI-C\" context\n"
     "    function void func(\n"
     "  input  bit             impl_i,\n"
     "  input  bit             op_i,\n"
     "  input  bit [5:0]       mode_i,\n"
     "  input  bit [3:0][31:0] iv_i,\n"
     "  input  bit [2:0]       key_len_i,\n"
     "  input  bit [7:0][31:0] key_i,\n"
     "  input  bit [7:0]       data_i   [],\n"
     "  output bit [7:0]       data_o   []\n"
     ");\n"},
    {// module with system task call w or w/o parentheses
     "module m; initial begin #10 $display(\"foo\"); $display(\"bar\");"
     "end endmodule",
     "module m;\n"
     "  initial begin\n"
     "    #10 $display(\"foo\");\n"
     "    $display(\"bar\");\n"
     "  end\n"
     "endmodule\n"},
    {// module with system task call
     "module m; initial begin #10 $display; $display;"
     "end endmodule",
     "module m;\n"
     "  initial begin\n"
     "    #10 $display;\n"
     "    $display;\n"
     "  end\n"
     "endmodule\n"},

    // interface test cases
    {// two interface declarations
     " interface if1 ; endinterface\t\t"
     "interface  if2; endinterface   ",
     "interface if1;\n"
     "endinterface\n"
     "interface if2;\n"
     "endinterface\n"},
    {// two interface declarations, end labels
     " interface if1 ; endinterface:if1\t\t"
     "interface  if2; endinterface    :  if2   ",
     "interface if1;\n"
     "endinterface : if1\n"
     "interface if2;\n"
     "endinterface : if2\n"},
    {// interface declaration with parameters
     " interface if1#( parameter int W= 8 );endinterface\t\t",
     "interface if1 #(\n"
     "    parameter int W = 8\n"
     ");\n"
     "endinterface\n"},
    {// interface declaration with ports (empty)
     " interface if1()\n;endinterface\t\t",
     "interface if1 ();\n"
     "endinterface\n"},
    {// interface declaration with parameter comment only, empty ports
     " interface if1#( \n"
     "//param\n"
     ")();endinterface\t\t",
     "interface if1 #(\n"
     "    //param\n"
     ") ();\n"
     "endinterface\n"},
    {// interface declaration with parameter, empty ports
     " interface if1#( parameter int W= 8 )();endinterface\t\t",
     "interface if1 #(\n"
     "    parameter int W = 8\n"
     ") ();\n"
     "endinterface\n"},
    {// interface declaration with ports
     " interface if1( input\tlogic   z)\n;endinterface\t\t",
     "interface if1 (\n"
     "    input logic z\n"
     ");\n"
     "endinterface\n"},
    {// interface declaration with multiple ports
     " interface if1( input\tlogic   z, output logic a)\n;endinterface\t\t",
     "interface if1 (\n"
     "    input  logic z,\n"  // should be one-per-line, even it it fits
     "    output logic a\n"   // aligned
     ");\n"
     "endinterface\n"},
    {// interface declaration with parameters and ports
     " interface if1#( parameter int W= 8 )(input logic z);endinterface\t\t",
     // doesn't fit on one line
     "interface if1 #(\n"
     "    parameter int W = 8\n"
     ") (\n"
     "    input logic z\n"
     ");\n"
     "endinterface\n"},
    {
        // interface with modport declarations
        "interface\tfoo_if  ;"
        "modport  mp1\t( output a, input b);"
        "modport\tmp2  (output c,input d );\t"
        "endinterface",
        "interface foo_if;\n"
        "  modport mp1(output a, input b);\n"
        "  modport mp2(output c, input d);\n"
        "endinterface\n",
    },
    {
        // interface with long modport port names
        "interface\tfoo_if  ;"
        "modport  mp1\t( output a_long_output, input detailed_input_name);"
        "endinterface",
        "interface foo_if;\n"
        "  modport mp1(\n"
        "      output a_long_output,\n"
        "      input detailed_input_name\n"
        "  );\n"
        "endinterface\n",
    },
    {
        // interface with modport declaration with multiple ports
        "interface\tfoo_if  ;"
        "modport  mp1\t( output a_long_output, input detailed_input_name);"
        "endinterface",
        "interface foo_if;\n"
        "  modport mp1(\n"
        "      output a_long_output,\n"
        "      input detailed_input_name\n"
        "  );\n"
        "endinterface\n",
    },
    {
        // interface with modport TF port declaration
        "interface\tfoo_if  ;"
        "modport  mp1\t( output a, input b, import c);"
        "endinterface",
        "interface foo_if;\n"
        "  modport mp1(\n"
        "      output a,\n"
        "      input b,\n"
        "      import c\n"
        "  );\n"
        "endinterface\n",
    },
    {
        // interface with complex modport ports list
        "interface\tfoo_if  ;"
        "modport producer\t(input ready,\toutput data, valid, user,"
        " strobe, keep, last,\timport producer_reset, producer_tick);"
        "modport consumer\t(input data, valid, user, strobe, keep, last,"
        " output ready,\timport consumer_reset, consumer_tick, consume);"
        "endinterface",
        "interface foo_if;\n"
        "  modport producer(\n"
        "      input ready,\n"
        "      output data, valid, user, strobe,\n"
        "          keep, last,\n"
        "      import producer_reset,\n"
        "          producer_tick\n"
        "  );\n"
        "  modport consumer(\n"
        "      input data, valid, user, strobe,\n"
        "          keep, last,\n"
        "      output ready,\n"
        "      import consumer_reset,\n"
        "          consumer_tick, consume\n"
        "  );\n"
        "endinterface\n",
    },
    {
        // interface with modports and comments inside
        "interface foo_if;\n"
        " modport mp1(\n"
        "  // Our output\n"
        "     output a,\n"
        "  /* Inputs */\n"
        "      input b1, b_f /*last*/,"
        "  import c\n"
        "  );\n"
        "endinterface\n",
        "interface foo_if;\n"
        "  modport mp1(\n"
        "      // Our output\n"
        "      output a,\n"
        "      /* Inputs */\n"
        "      input b1, b_f  /*last*/,\n"
        "      import c\n"
        "  );\n"
        "endinterface\n",
    },

    // class test cases
    {"class action;int xyz;endclass  :  action\n",
     "class action;\n"
     "  int xyz;\n"
     "endclass : action\n"},
    {"class action  extends mypkg :: inaction;endclass  :  action\n",
     "class action extends mypkg::inaction;\n"  // tests for spacing around ::
     "endclass : action\n"},
    {"class c;function new;endfunction endclass",
     "class c;\n"
     "  function new;\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function new ( );endfunction endclass",
     "class c;\n"
     "  function new();\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function new ( string s );endfunction endclass",
     "class c;\n"
     "  function new(string s);\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function new ( string s ,int i );endfunction endclass",
     "class c;\n"
     "  function new(string s, int i);\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function void f;endfunction endclass",
     "class c;\n"
     "  function void f;\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;virtual function void f;endfunction endclass",
     "class c;\n"
     "  virtual function void f;\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function int f ( );endfunction endclass",
     "class c;\n"
     "  function int f();\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function int f ( int  ii );endfunction endclass",
     "class c;\n"
     "  function int f(int ii);\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;function int f ( int  ii ,bit  bb );endfunction endclass",
     "class c;\n"
     "  function int f(int ii, bit bb);\n"
     "  endfunction\n"
     "endclass\n"},
    {"class c;task t ;endtask endclass",
     "class c;\n"
     "  task t;\n"
     "  endtask\n"
     "endclass\n"},
    {"class c;task t ( int  ii ,bit  bb );endtask endclass",
     "class c;\n"
     "  task t(int ii, bit bb);\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic repeated_assigner;"
     "repeat (count) y = w;"  // single statement body
     "endtask endclass",
     "class c;\n"
     "  task automatic repeated_assigner;\n"
     "    repeat (count) y = w;\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic delayed_assigner;"
     "#   100   y = w;"  // delayed assignment
     "endtask endclass",
     "class c;\n"
     "  task automatic delayed_assigner;\n"
     "    #100 y = w;\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic labeled_assigner;"
     "lbl   :   y = w;"  // delayed assignment
     "endtask endclass",
     "class c;\n"
     "  task automatic labeled_assigner;\n"
     "    lbl : y = w;\n"  // TODO(fangism): no space before ':'
     "  endtask\n"
     "endclass\n"},
    // tasks with control statements
    {"class c; task automatic waiter;"
     "if (count == 0) begin #0; return;end "
     "endtask endclass",
     "class c;\n"
     "  task automatic waiter;\n"
     "    if (count == 0) begin\n"
     "      #0;\n"
     "      return;\n"
     "    end\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic heartbreaker;"
     "if( c)if( d) break ;"
     "endtask endclass",
     "class c;\n"
     "  task automatic heartbreaker;\n"
     "    if (c) if (d) break;\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic waiter;"
     "repeat (count) @(posedge clk);"
     "endtask endclass",
     "class c;\n"
     "  task automatic waiter;\n"
     "    repeat (count) @(posedge clk);\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic repeat_assigner;"
     "repeat( r )\ny = w;"
     "repeat( q )\ny = 1;"
     "endtask endclass",
     "class c;\n"
     "  task automatic repeat_assigner;\n"
     "    repeat (r) y = w;\n"
     "    repeat (q) y = 1;\n"
     "  endtask\n"
     "endclass\n"},
    {"class c; task automatic event_control_assigner;"
     "@ ( posedge clk )\ny = w;"
     "@ ( negedge clk )\nz = w;"
     "endtask endclass",
     "class c;\n"
     "  task automatic event_control_assigner;\n"
     "    @(posedge clk) y = w;\n"
     "    @(negedge clk) z = w;\n"
     "  endtask\n"
     "endclass\n"},
    {
        // classes with surrrounding comments
        // vertical spacing preserved
        "\n// pre-c\n\n"
        "  class   c  ;\n"
        "// c stuff\n"
        "endclass\n"
        "  // pre-d\n"
        "\n\nclass d ;\n"
        " // d stuff\n"
        "endclass\n"
        "\n// the end\n",
        "\n// pre-c\n\n"
        "class c;\n"
        "  // c stuff\n"
        "endclass\n"
        "// pre-d\n\n\n"
        "class d;\n"
        "  // d stuff\n"
        "endclass\n\n"
        "// the end\n",
    },
    {// class with comments around task/function declarations
     "class c;      // c is for cookie\n"
     "    // f is for false\n"
     "\tfunction f(integer size) ; endfunction\n"
     " // t is for true\n"
     "task t();endtask\n"
     " // class is about to end\n"
     "endclass",
     "class c;  // c is for cookie\n"
     "  // f is for false\n"
     "  function f(integer size);\n"
     "  endfunction\n"
     "  // t is for true\n"
     "  task t();\n"
     "  endtask\n"
     "  // class is about to end\n"
     "endclass\n"},
    // class property alignment test cases
    {"class c;\n"
     "int foo  ;\n"
     "byte bar;\n"
     "endclass : c\n",
     "class c;\n"
     "  int  foo;\n"
     "  byte bar;\n"
     "endclass : c\n"},
    {"class c;\n"
     "int foo;\n"
     "const bit b;\n"
     "endclass : c\n",
     "class c;\n"
     "  int       foo;\n"
     "  const bit b;\n"
     "endclass : c\n"},
    {"class c;\n"
     "rand logic l;\n"
     "int foo;\n"
     "endclass : c\n",
     "class c;\n"
     "  rand logic l;\n"
     "  int        foo;\n"
     "endclass : c\n"},
    {"class c;\n"
     "rand logic l;\n"
     "const static int foo;\n"  // more qualifiers
     "endclass : c\n",
     "class c;\n"
     "  rand logic       l;\n"
     "  const static int foo;\n"
     "endclass : c\n"},
    {"class c;\n"
     "static local int foo;\n"
     "const bit b;\n"
     "endclass : c\n",
     "class c;\n"
     "  static local int foo;\n"
     "  const bit        b;\n"
     "endclass : c\n"},
    {// example with queue
     "class c;\n"
     "int foo [$] ;\n"
     "int foo_bar ;\n"
     "endclass : c\n",
     "class c;\n"
     "  int foo     [$];\n"
     "  int foo_bar;\n"
     "endclass : c\n"},
    {// subcolumns
     "class cc;\n"
     "rand bit [A-1:0] foo;\n"
     "rand bit [A-1:0][2] bar;\n"
     "int foobar[X+1:Y];\n"
     "int baz[42];\n"
     "rand bit qux[Z];\n"
     "rand bit [1:0] quux[3:0];\n"
     "rand bit [A:BB][42] quuz[7];\n"
     "endclass\n",
     "class cc;\n"
     "  rand bit [A-1: 0]     foo;\n"
     "  rand bit [A-1: 0][ 2] bar;\n"
     "  int                   foobar[X+1:Y];\n"
     "  int                   baz   [   42];\n"
     "  rand bit              qux   [    Z];\n"
     "  rand bit [  1: 0]     quux  [  3:0];\n"
     "  rand bit [  A:BB][42] quuz  [    7];\n"
     "endclass\n"},
    {"class cc;\n"
     "int qux[2];\n"
     "int quux[SIZE-1+SHIFT:SHIFT];\n"
     "int quuz[SOME_CONSTANT];\n"
     "endclass\n",
     "class cc;\n"
     "  int qux [                 2];\n"
     "  int quux[SIZE-1+SHIFT:SHIFT];\n"
     "  int quuz[     SOME_CONSTANT];\n"
     "endclass\n"},
    {// aligns over comments (ignored)
     "class c;\n"
     "// foo is...\n"
     "int foo;\n"
     "// b is...\n"
     "const bit b;\n"
     " // llama is...\n"
     "logic llama;\n"
     "endclass : c\n",
     "class c;\n"
     "  // foo is...\n"
     "  int       foo;\n"
     "  // b is...\n"
     "  const bit b;\n"
     "  // llama is...\n"
     "  logic     llama;\n"
     "endclass : c\n"},
    {// aligns over comments (ignored), even with blank lines
     "class c;\n"
     "// foo is...\n"
     "int foo;\n"
     "\n"
     "// b is...\n"
     "const bit b;\n"
     "\n"
     " // llama is...\n"
     "logic llama;\n"
     "endclass : c\n",
     "class c;\n"
     "  // foo is...\n"
     "  int       foo;\n"
     "\n"
     "  // b is...\n"
     "  const bit b;\n"
     "\n"
     "  // llama is...\n"
     "  logic     llama;\n"
     "endclass : c\n"},
    {"class c;\n"
     "rand logic l;\n"
     "int [1:0] foo;\n"
     "endclass : c\n",
     "class c;\n"
     "  rand logic       l;\n"
     "  int        [1:0] foo;\n"
     "endclass : c\n"},
    {// non-data-declarations break up groups
     "class c;\n"
     "rand logic l;\n"
     "int foo;\n"
     "`uvm_bar_foo()\n"
     "logic k;\n"
     "rand int bar;\n"
     "endclass : c\n",
     "class c;\n"
     "  rand logic l;\n"
     "  int        foo;\n"
     "  `uvm_bar_foo()\n"  // separates alignment groups above/below
     "  logic    k;\n"
     "  rand int bar;\n"
     "endclass : c\n"},
    {// non-data-declarations break up groups
     "class c;\n"
     "logic k;\n"
     "rand int bar;\n"
     "function void f();\n"
     "endfunction\n"
     "rand logic l;\n"
     "int foo;\n"
     "endclass : c\n",
     "class c;\n"
     "  logic    k;\n"
     "  rand int bar;\n"
     "  function void f();\n"  // function declaration breaks groups
     "  endfunction\n"
     "  rand logic l;\n"
     "  int        foo;\n"
     "endclass : c\n"},
    {// align single-value initializers at the '='
     "class c;\n"
     "const logic foo=0;\n"
     "const bit b=1;\n"
     "endclass : c\n",
     "class c;\n"
     "  const logic foo = 0;\n"
     "  const bit   b   = 1;\n"
     "endclass : c\n"},
    {// align single-value initializers at the '=', over non-initialized
     "class c;\n"
     "const logic foo=0;\n"
     "rand int iidrv;\n"
     "const bit b=1;\n"
     "endclass : c\n",
     "class c;\n"
     "  const logic foo    = 0;\n"
     "  rand int    iidrv;\n"  // no initializer, but align across this
     "  const bit   b      = 1;\n"
     "endclass : c\n"},

    // constraint test cases
    {
        "class foo; constraint c1_c{ } endclass",
        "class foo;\n"
        "  constraint c1_c {}\n"
        "endclass\n",
    },
    {
        "class foo; constraint c1_c{  } constraint c2_c{ } endclass",
        "class foo;\n"
        "  constraint c1_c {}\n"
        "  constraint c2_c {}\n"
        "endclass\n",
    },
    {
        "class foo; constraint c1_c{soft z==y;unique{baz};}endclass",
        "class foo;\n"
        "  constraint c1_c {\n"
        "    soft z == y;\n"
        "    unique {baz};\n"
        "  }\n"
        "endclass\n",
    },
    {
        "class foo; constraint c1_c{ //comment1\n"
        "//comment2\n"
        "//comment3\n"
        "} endclass",
        "class foo;\n"
        "  constraint c1_c {  //comment1\n"
        "    //comment2\n"
        "    //comment3\n"
        "  }\n"
        "endclass\n",
    },

    {"class foo;constraint c { "
     "timer_enable dist { [ 8'h0 : 8'hfe ] :/ 90 , 8'hff :/ 10 }; "
     "} endclass\n",
     "class foo;\n"
     "  constraint c {\n"
     "    timer_enable dist {\n"
     "      [8'h0 : 8'hfe] :/ 90,\n"
     "      8'hff          :/ 10\n"  // aligned
     "    };\n"
     "  }\n"
     "endclass\n"},

    {
        "class Foo; constraint if_c { if (z) { soft x == y; } } endclass\n",
        "class Foo;\n"
        "  constraint if_c {\n"
        "    if (z) {\n"
        "      soft x == y;\n"
        "    }\n"
        "  }\n"
        "endclass\n",
    },
    {
        "class Foo; constraint if_c { if (z) {\n"
        "//comment-a\n"
        "soft x == y;\n"
        "//comment-b\n"
        "} } endclass\n",
        "class Foo;\n"
        "  constraint if_c {\n"
        "    if (z) {\n"
        "      //comment-a\n"  // properly indented
        "      soft x == y;\n"
        "      //comment-b\n"  // properly indented
        "    }\n"
        "  }\n"
        "endclass\n",
    },
    {
        "class c; "
        "constraint c_has_config_error {"
        "if (yyy) {zzzz == 1;} else {yyyyyyy == 0;}} "
        "endclass",
        "class c;\n"
        "  constraint c_has_config_error {\n"
        "    if (yyy) {\n"
        "      zzzz == 1;\n"
        "    } else {\n"
        "      yyyyyyy == 0;\n"
        "    }\n"
        "  }\n"
        "endclass\n",
    },
    // distributions: colon alignment
    {"class c;\n"
     "constraint co {\n"
     "d dist {\n"
     "[1:2]:/2,\n"
     "[11:33]:/22,\n"
     "[111:444]:/8,\n"
     "[1:42]:/10,\n"
     "[11:12]:/3\n"
     "};\n"
     "}\n"
     "endclass\n",
     "class c;\n"
     "  constraint co {\n"
     "    d dist {\n"
     "      [  1 :   2] :/ 2,\n"
     "      [ 11 :  33] :/ 22,\n"
     "      [111 : 444] :/ 8,\n"
     "      [  1 :  42] :/ 10,\n"
     "      [ 11 :  12] :/ 3\n"
     "    };\n"
     "  }\n"
     "endclass\n"},
    // distributions: subcolumns
    {"class foo;\n"
     "constraint bar {\n"
     "baz dist {\n"
     "[1:2]:/2,\n"
     "QUX[3:0]:/10,\n"
     "[11:33]:/22,\n"
     "ID_LONGER_THAN_RANGES:/3,\n"
     "[111:QUUZ[Z]]:/8,\n"
     "[X[4:0]:Y[8:Z-2]]:/8\n"
     "};\n"
     "}\n"
     "endclass\n",
     "class foo;\n"
     "  constraint bar {\n"
     "    baz dist {\n"
     "      [     1 :        2]   :/ 2,\n"
     "      QUX[3:0]              :/ 10,\n"
     "      [    11 :       33]   :/ 22,\n"
     "      ID_LONGER_THAN_RANGES :/ 3,\n"
     "      [   111 :  QUUZ[Z]]   :/ 8,\n"
     "      [X[4:0] : Y[8:Z-2]]   :/ 8\n"
     "    };\n"
     "  }\n"
     "endclass\n"},
    // class with empty parameter list
    {"class foo #(); endclass",
     "class foo #();\n"
     "endclass\n"},
    // class with empty parameter list, with comment
    {"class foo #(  \n"
     "// comment\n"
     "); endclass",
     "class foo #(\n"
     "    // comment\n"
     ");\n"
     "endclass\n"},
    // class with empty parameter list, extends
    {"class foo #()extends bar ; endclass",
     "class foo #() extends bar;\n"
     "endclass\n"},
    // class extends from type with named parameters
    {"class foo extends bar #(.N(N), .M(M)); endclass",
     "class foo extends bar #(\n"
     "    .N(N),\n"
     "    .M(M)\n"
     ");\n"
     "endclass\n"},

    // class with one parameter list
    {"class foo #(type a = b); endclass",
     "class foo #(\n"
     "    type a = b\n"
     ");\n"
     "endclass\n"},

    // class with multiple paramter list
    {"class foo #(type a = b, type c = d, type e = f); endclass",
     "class foo #(\n"
     "    type a = b,\n"
     "    type c = d,\n"
     "    type e = f\n"
     ");\n"
     "endclass\n"},

    // class with data members
    {"class  i_love_data ;const\ninteger  sizer\t;endclass",
     "class i_love_data;\n"
     "  const integer sizer;\n"
     "endclass\n"},
    {"class  i_love_data ;const\ninteger  sizer=3\t;endclass",
     "class i_love_data;\n"
     "  const integer sizer = 3;\n"
     "endclass\n"},
    {"class  i_love_data ;protected\nint  count  \t;endclass",
     "class i_love_data;\n"
     "  protected int count;\n"
     "endclass\n"},
    {"class  i_love_data ;\t\nint  counter\n ;int  countess \t;endclass",
     "class i_love_data;\n"
     "  int counter;\n"
     "  int countess;\n"
     "endclass\n"},
    {"class  i_love_params ;foo#( . bar)  baz\t;endclass",
     "class i_love_params;\n"
     "  foo #(.bar) baz;\n"
     "endclass\n"},
    {"class  i_love_params ;foo#( . bar ( bah ))  baz\t;endclass",
     "class i_love_params;\n"
     "  foo #(.bar(bah)) baz;\n"
     "endclass\n"},
    {"class  i_love_params ;foo#( . bar ( bah\n),"
     ".\ncat( dog) )  baz\t;endclass",
     "class i_love_params;\n"
     "  foo #(\n"
     "      .bar(bah),\n"
     "      .cat(dog)\n"
     "  ) baz;\n"
     "endclass\n"},
    {"class  i_love_params ;foo#( . bar)  baz1,baz2\t;endclass",
     "class i_love_params;\n"
     "  foo #(.bar) baz1, baz2;\n"
     "endclass\n"},
    {"class  i_love_params ;foo#( . bar)  baz\t;baz#(.foo)bar;endclass",
     "class i_love_params;\n"
     "  foo #(.bar) baz;\n"
     "  baz #(.foo) bar;\n"
     "endclass\n"},
    {"class i_love_params // comment\n"
     ";\n"
     "foo#(\n"
     ".foobar(quuuuux) // comment\n"
     ", .cat(dog)\n"
     ") baz // comment\n"
     ";endclass\n",
     "class i_love_params  // comment\n"
     ";\n"
     "  foo #(\n"
     "        .foobar(quuuuux)  // comment\n"
     "      , .cat   (dog)\n"
     "  ) baz  // comment\n"
     "  ;\n"
     "endclass\n"},

    // typedef test cases
    {"typedef enum logic\t{ A=0, B=1 }foo_t;",
     "typedef enum logic {\n"
     "  A = 0,\n"
     "  B = 1\n"
     "} foo_t;\n"},
    {"typedef enum uint8_t\t{ kA=8'b0, kB=8'b1 }foo_t;",
     "typedef enum uint8_t {\n"  // uint8_t is user-defined
     "  kA = 8'b0,\n"
     "  kB = 8'b1\n"
     "} foo_t;\n"},
    {// With comments on same line as enum value
     "typedef enum logic\t{ A=0, // foo\n"
     "B,// bar\n"
     "`ifndef DO_PANIC\n"
     "C=42,// answer\n"
     "`endif\n"
     "D=3    // baz\n"
     "}foo_t;",
     "typedef enum logic {\n"
     "  A = 0,   // foo\n"
     "  B,       // bar\n"
     "`ifndef DO_PANIC\n"
     "  C = 42,  // answer\n"
     "`endif\n"
     "  D = 3    // baz\n"
     "} foo_t;\n"},
    {// with scalar dimensions
     "typedef enum logic[2]\t{ A=0, B=1 }foo_t;",
     "typedef enum logic [2] {\n"
     "  A = 0,\n"
     "  B = 1\n"
     "} foo_t;\n"},
    {// with range dimensions
     "typedef enum logic[1:0]\t{ A=0, B=1 }foo_t;",
     "typedef enum logic [1:0] {\n"
     "  A = 0,\n"
     "  B = 1\n"
     "} foo_t;\n"},
    {"typedef foo_pkg::baz_t#(.L(L), .W(W)) bar_t;\n",
     "typedef foo_pkg::baz_t#(\n"
     "    .L(L),\n"
     "    .W(W)\n"
     ") bar_t;\n"},

    // package test cases
    {"package fedex;localparam  int  www=3 ;endpackage   :  fedex\n",
     "package fedex;\n"
     "  localparam int www = 3;\n"
     "endpackage : fedex\n"},
    {"package   typey ;"
     "typedef enum int{ A=0, B=1 }foo_t;"
     "typedef enum{ C=0, D=1 }bar_t;"
     "endpackage:typey\n",
     "package typey;\n"
     "  typedef enum int {\n"
     "    A = 0,\n"
     "    B = 1\n"
     "  } foo_t;\n"
     "  typedef enum {\n"
     "    C = 0,\n"
     "    D = 1\n"
     "  } bar_t;\n"
     "endpackage : typey\n"},
    {// net type declarations
     "package foo_pkg;"
     "nettype shortreal\t\tfoo  ;"
     "nettype\nbar[1:0 ] baz  with\tquux ;"
     "endpackage",
     "package foo_pkg;\n"
     "  nettype shortreal foo;\n"
     "  nettype bar [1:0] baz with quux;\n"
     "endpackage\n"},
    {"package foo_pkg; \n"
     "// function description.......\n"
     "function automatic void bar();"
     "endfunction "
     "endpackage\n",
     "package foo_pkg;\n"
     "  // function description.......\n"
     "  function automatic void bar();\n"
     "  endfunction\n"
     "endpackage\n"},
    {"package foo_pkg; \n"
     "// function description.......\n"
     "function void bar(string name=\"x\" ) ;"
     "endfunction "
     "endpackage\n",
     "package foo_pkg;\n"
     "  // function description.......\n"
     "  function void bar(string name = \"x\");\n"
     "  endfunction\n"
     "endpackage\n"},
    {" package foo_pkg; \n"
     "// class description.............\n"
     "class classy;"
     "endclass "
     "endpackage\n",
     "package foo_pkg;\n"
     "  // class description.............\n"
     "  class classy;\n"
     "  endclass\n"
     "endpackage\n"},
    {"package\tfoo_pkg; \n"
     "// class description.............\n"
     "class   classy;    \n"
     "// function description.......\n"
     "function\nautomatic   void bar( );"
     "endfunction   "
     "endclass\t"
     "endpackage\n",
     "package foo_pkg;\n"
     "  // class description.............\n"
     "  class classy;\n"
     "    // function description.......\n"
     "    function automatic void bar();\n"
     "    endfunction\n"
     "  endclass\n"
     "endpackage\n"},

    // function test cases
    {"function f ;endfunction", "function f;\nendfunction\n"},
    {"function f ;endfunction:   f", "function f;\nendfunction : f\n"},
    {"function f ( );endfunction", "function f();\nendfunction\n"},
    {"function f (input bit x);endfunction",
     "function f(input bit x);\nendfunction\n"},
    {"function f (input bit x,logic y );endfunction",
     "function f(input bit x, logic y);\nendfunction\n"},
    {"function f;\n// statement comment\nendfunction\n",
     "function f;\n"
     "  // statement comment\n"  // indented
     "endfunction\n"},
    {"function f();\n// statement comment\nendfunction\n",
     "function f();\n"
     "  // statement comment\n"  // indented
     "endfunction\n"},
    {"function f(input int x);\n"
     "// statement comment\n"
     "f=x;\n"
     "// statement comment\n"
     "endfunction\n",
     "function f(input int x);\n"
     "  // statement comment\n"  // indented
     "  f = x;\n"
     "  // statement comment\n"  // indented
     "endfunction\n"},
    {// line breaks around assignments
     "function f;a=b;c+=d;endfunction",
     "function f;\n"
     "  a = b;\n"
     "  c += d;\n"
     "endfunction\n"},
    {"function f;a&=b;c=d;endfunction",
     "function f;\n"
     "  a &= b;\n"
     "  c = d;\n"
     "endfunction\n"},
    {"function f;a<<=b;c=b;d>>>=b;endfunction",
     "function f;\n"
     "  a <<= b;\n"
     "  c = b;\n"
     "  d >>>= b;\n"
     "endfunction\n"},
    {// port declaration exceeds line length limit
     "function f (loooong_type if_it_fits_I_sits);endfunction",
     "function f(\n"
     "    loooong_type if_it_fits_I_sits);\n"
     "endfunction\n"},
    {"function\nvoid\tspace;a=( b+c )\n;endfunction   :space\n",
     "function void space;\n"
     "  a = (b + c);\n"
     "endfunction : space\n"},
    {"function\nvoid\twarranty;return  to_sender\n;endfunction   :warranty\n",
     "function void warranty;\n"
     "  return to_sender;\n"
     "endfunction : warranty\n"},
    {// if statement that fits on one line
     "function if_i_fits_i_sits;"
     "if(x)y=x;"
     "endfunction",
     "function if_i_fits_i_sits;\n"
     "  if (x) y = x;\n"
     "endfunction\n"},
    {// for loop
     "function\nvoid\twarranty;for(j=0; j<k; --k)begin "
     "++j\n;end endfunction   :warranty\n",
     "function void warranty;\n"
     "  for (j = 0; j < k; --k) begin\n"
     "    ++j;\n"
     "  end\n"
     "endfunction : warranty\n"},
    {// for loop that needs wrapping
     "function\nvoid\twarranty;for(jjjjj=0; jjjjj<kkkkk; --kkkkk)begin "
     "++j\n;end endfunction   :warranty\n",
     "function void warranty;\n"
     "  for (\n"
     "      jjjjj = 0; jjjjj < kkkkk; --kkkkk\n"
     "  ) begin\n"
     "    ++j;\n"
     "  end\n"
     "endfunction : warranty\n"},
    {// for loop that needs more wrapping
     "function\nvoid\twarranty;"
     "for(jjjjjjjj=0; jjjjjjjj<kkkkkkkk; --kkkkkkkk)begin "
     "++j\n;end endfunction   :warranty\n",
     "function void warranty;\n"
     "  for (\n"
     "      jjjjjjjj = 0;\n"
     "      jjjjjjjj < kkkkkkkk;\n"
     "      --kkkkkkkk\n"
     "  ) begin\n"
     "    ++j;\n"
     "  end\n"
     "endfunction : warranty\n"},
    {// for loop that fits on one line
     "function loop_fits;"
     "for(x=0;x<N;++x) y=x;"
     "endfunction",
     "function loop_fits;\n"
     "  for (x = 0; x < N; ++x) y = x;\n"
     "endfunction\n"},
    {// for loop that would fit on one line, but is force-split with //comment
     "function loop_fits;"
     "for(x=0;x<N;++x) //\n y=x;"
     "endfunction",
     "function loop_fits;\n"
     "  for (x = 0; x < N; ++x)  //\n"
     "    y = x;\n"
     "endfunction\n"},
    {// for loop with function call in initializer
     "function  void looper(); "
     "for (int i=f(n); i>=0; i -- ) begin end "
     "endfunction",
     "function void looper();\n"
     "  for (int i = f(n); i >= 0; i--) begin\n"
     "  end\n"
     "endfunction\n"},
    {// for loop with function call in condition
     "function  void looper(); "
     "for (int i=0; i<f(m); i -- ) begin end "
     "endfunction",
     "function void looper();\n"
     "  for (int i = 0; i < f(m); i--) begin\n"
     "  end\n"
     "endfunction\n"},
    {// forever loop
     "function\nvoid\tforevah;forever  begin "
     "++k\n;end endfunction\n",
     "function void forevah;\n"
     "  forever begin\n"
     "    ++k;\n"
     "  end\n"
     "endfunction\n"},
    {// forever loop
     "function\nvoid\tforevah;forever  "
     "++k\n;endfunction\n",
     "function void forevah;\n"
     "  forever ++k;\n"
     "endfunction\n"},
    {// forever loop, forced break
     "function\nvoid\tforevah;forever     //\n"
     "++k\n;endfunction\n",
     "function void forevah;\n"
     "  forever  //\n"
     "    ++k;\n"
     "endfunction\n"},
    {// repeat loop
     "function\nvoid\tpete;repeat(3)  begin "
     "++k\n;end endfunction\n",
     "function void pete;\n"
     "  repeat (3) begin\n"
     "    ++k;\n"
     "  end\n"
     "endfunction\n"},
    {// repeat loop
     "function\nvoid\tpete;repeat(3)  "
     "++k\n;endfunction\n",
     "function void pete;\n"
     "  repeat (3)++k;\n"  // TODO(fangism): space before ++
     "endfunction\n"},
    {// repeat loop, forced break
     "function\nvoid\tpete;repeat(3)//\n"
     "++k\n;endfunction\n",
     "function void pete;\n"
     "  repeat (3)  //\n"
     "    ++k;\n"
     "endfunction\n"},
    {// while loop
     "function\nvoid\twily;while( coyote )  begin "
     "++super_genius\n;end endfunction\n",
     "function void wily;\n"
     "  while (coyote) begin\n"
     "    ++super_genius;\n"
     "  end\n"
     "endfunction\n"},
    {// while loop
     "function\nvoid\twily;while( coyote )  "
     "++ super_genius\n;   endfunction\n",
     "function void wily;\n"
     "  while (coyote)++super_genius;\n"  // TODO(fangism): space before ++
     "endfunction\n"},
    {// while loop, forced break
     "function\nvoid\twily;while( coyote ) //\n "
     "++ super_genius\n;   endfunction\n",
     "function void wily;\n"
     "  while (coyote)  //\n"
     "    ++super_genius;\n"
     "endfunction\n"},
    {// do-while loop
     "function\nvoid\tdonot;do  begin "
     "++s\n;end  while( z);endfunction\n",
     "function void donot;\n"
     "  do begin\n"
     "    ++s;\n"
     "  end while (z);\n"
     "endfunction\n"},
    {// do-while loop, single statement
     "function\nvoid\tdonot;do  "
     "++s\n;  while( z);endfunction\n",
     "function void donot;\n"
     "  do ++s; while (z);\n"
     "endfunction\n"},
    {// do-while loop, single statement, forced break
     "function\nvoid\tdonot;do  "
     "++s\n;//\n  while( z);endfunction\n",
     "function void donot;\n"
     "  do\n"
     "    ++s;  //\n"
     "  while (z);\n"
     "endfunction\n"},
    {// foreach loop
     "function\nvoid\tforeacher;foreach( m [n] )  begin "
     "++m\n;end endfunction\n",
     "function void foreacher;\n"
     "  foreach (m[n]) begin\n"
     "    ++m;\n"
     "  end\n"
     "endfunction\n"},
    {// spaces in condition expression
     "function f; return {a}? {b} :{ c };endfunction",
     "function f;\n"
     "  return {a} ? {b} : {c};\n"
     "endfunction\n"},
    {"task t;endtask",
     "task t;\n"
     "endtask\n"},
    {"task t (   );endtask",
     "task t();\n"
     "endtask\n"},
    {"task t (input    bit   drill   ) ;endtask",
     "task t(input bit drill);\n"
     "endtask\n"},
    {"task t; ## 100 ;endtask",
     "task t;\n"
     "  ##100;\n"
     "endtask\n"},
    {"task t; ## (1+1) ;endtask",  // delay expression
     "task t;\n"
     "  ##(1 + 1);\n"
     "endtask\n"},
    {"task t; ## delay_value ;endtask",
     "task t;\n"
     "  ##delay_value;\n"
     "endtask\n"},
    {"task t; ## `DELAY_VALUE ;endtask",
     "task t;\n"
     "  ##`DELAY_VALUE;\n"
     "endtask\n"},
    {"task t;\n"
     "`uvm_error( foo,bar);\n"
     "endtask\n",
     "task t;\n"
     "  `uvm_error(foo, bar);\n"
     "endtask\n"},
    {"task t;\n"
     "`uvm_error(foo,bar)\n"
     ";\n"  // null statement
     "endtask\n",
     "task t;\n"
     "  `uvm_error(foo, bar)\n"
     "  ;\n"
     "endtask\n"},
    {"task t;\n"
     "if(expr)begin\t\n"
     "`uvm_error(foo,bar);\n"
     "end\n"
     "endtask\n",
     "task t;\n"
     "  if (expr) begin\n"
     "    `uvm_error(foo, bar);\n"
     "  end\n"
     "endtask\n"},
    {"task\nrabbit;$kill(the,\nrabbit)\n;endtask:  rabbit\n",
     "task rabbit;\n"
     "  $kill(the, rabbit);\n"
     "endtask : rabbit\n"},
    {"function  int foo( );if( a )a+=1 ; endfunction",
     "function int foo();\n"
     "  if (a) a += 1;\n"
     "endfunction\n"},
    {"function  void foo( );foo=`MACRO(b,c) ; endfunction",
     "function void foo();\n"
     "  foo = `MACRO(b, c);\n"
     "endfunction\n"},
    {"module foo;if    \t  (bar)begin assign a=1; end endmodule",
     "module foo;\n"
     "  if (bar) begin\n"
     "    assign a = 1;\n"
     "  end\n"
     "endmodule\n"},
    {"module proc_cont_assigner;\n"
     "always begin\n"
     "assign x1 =   y1;\n"
     "deassign   x2 ;\n"
     "force x3=y3;\n"
     "release   x4 ;\n"
     "end\n"
     "endmodule\n",
     "module proc_cont_assigner;\n"
     "  always begin\n"
     "    assign x1 = y1;\n"
     "    deassign x2;\n"
     "    force x3 = y3;\n"
     "    release x4;\n"
     "  end\n"
     "endmodule\n"},
    {"module g_test(  );\n"
     "\tinitial begin:main_test \t"
     "for(int i=0;i<k;i++)begin "
     "case(i )\n"
     " 6'd0  :release in[0];  \n"
     "   endcase  "
     " \t\tend \t"
     "\t end:main_test\n"
     "endmodule:g_test\n",
     "module g_test ();\n"
     "  initial begin : main_test\n"
     "    for (int i = 0; i < k; i++) begin\n"
     "      case (i)\n"
     "        6'd0: release in[0];\n"
     "      endcase\n"
     "    end\n"
     "  end : main_test\n"
     "endmodule : g_test\n"},
    {// conditional generate (case)
     "module mc; case(s)a : bb c ; d : ee f; endcase endmodule",
     "module mc;\n"
     "  case (s)\n"
     "    a: bb c;\n"
     "    d: ee f;\n"
     "  endcase\n"
     "endmodule\n"},
    {// conditional generate (case), with comments
     "module mc; case(s)\n//comment a\na:bb  c;\n//comment b\n endcase "
     "endmodule",
     "module mc;\n"
     "  case (s)\n"
     "    //comment a\n"  // indented to case-item level
     "    a: bb c;\n"
     "    //comment b\n"  // indented to case-item level
     "  endcase\n"
     "endmodule\n"},

    {// "default:", not "default :"
     "function f; case (x) default: x=y; endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    default: x = y;\n"
     "  endcase\n"
     "endfunction\n"},
    {// default with null statement: "default: ;", not "default :;"
     "function f; case (x) default :; endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    default: ;\n"
     "  endcase\n"
     "endfunction\n"},
    {// case statement
     "function f; case (x) State0 : a=b; State1 : begin a=b; end "
     "endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    State0: a = b;\n"
     "    State1: begin\n"
     "      a = b;\n"
     "    end\n"
     "  endcase\n"
     "endfunction\n"},
    {// case statement, interleaved with comments
     "function f; case (x) \n//c1\nState0 : a=b;//c2\n//c3\n State1 : "
     "a=b;//c4\n//c5\n "
     "endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    //c1\n"
     "    State0: a = b;  //c2\n"
     "    //c3\n"
     "    State1: a = b;  //c4\n"
     "    //c5\n"
     "  endcase\n"
     "endfunction\n"},
    {// case inside statement, comments
     "function f; case (x)inside \n//comment\n"
     "[0:1]:x=y; \n"
     "    //comment\n"
     "endcase endfunction\n",
     "function f;\n"
     "  case (x) inside\n"
     "    //comment\n"
     "    [0 : 1]: x = y;\n"
     "    //comment\n"
     "  endcase\n"
     "endfunction\n"},
    {// case inside statement
     "function f; case (x)inside k1 : return b; k2 : begin return b; end "
     "endcase endfunction\n",
     "function f;\n"
     "  case (x) inside\n"
     "    k1: return b;\n"
     "    k2: begin\n"
     "      return b;\n"
     "    end\n"
     "  endcase\n"
     "endfunction\n"},
    {// case inside statement, with ranges
     "function f; case (x) inside[a:b] : return b; [c:d] : return b; "
     "default :return z;"
     "endcase endfunction\n",
     "function f;\n"
     "  case (x) inside\n"
     "    [a : b]: return b;\n"
     "    [c : d]: return b;\n"
     "    default: return z;\n"
     "  endcase\n"
     "endfunction\n"},
    {// case pattern statement
     "function f;"
     "case (y) matches "
     ".foo   : return 0;"
     ".*\t: return 1;"
     "endcase "
     "case (z) matches "
     ".foo\t\t: return 0;"
     ".*   : return 1;"
     "endcase "
     "endfunction",
     "function f;\n"
     "  case (y) matches\n"
     "    .foo: return 0;\n"
     "    .*: return 1;\n"
     "  endcase\n"
     "  case (z) matches\n"
     "    .foo: return 0;\n"
     "    .*: return 1;\n"
     "  endcase\n"
     "endfunction\n"},
    {// keep short case items on one line
     "function f; case (x)k1 : if( b )break; default :return 2;"
     "endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    k1:      if (b) break;\n"  // aligned
     "    default: return 2;\n"
     "  endcase\n"
     "endfunction\n"},
    {// keep short default items on one line
     "function f; case (x)k1 :break; default :if( c )return 2;"
     "endcase endfunction\n",
     "function f;\n"
     "  case (x)\n"
     "    k1:      break;\n"  // aligned
     "    default: if (c) return 2;\n"
     "  endcase\n"
     "endfunction\n"},
    {// keep short case inside items on one line
     "function f; case (x)inside k1 : if( b )return c; k2 : return a;"
     "endcase endfunction\n",
     "function f;\n"
     "  case (x) inside\n"
     "    k1: if (b) return c;\n"
     "    k2: return a;\n"
     "  endcase\n"
     "endfunction\n"},
    {// keep short case pattern items on one line
     "function f;"
     "case (y) matches "
     ".foo   :if( n )return 0;"
     ".*\t: return 1;"
     "endcase "
     "endfunction",
     "function f;\n"
     "  case (y) matches\n"
     "    .foo: if (n) return 0;\n"
     "    .*: return 1;\n"
     "  endcase\n"
     "endfunction\n"},
    {// randcase
     "function f; randcase k1 : return c; k2 : return a;"
     "endcase endfunction\n",
     "function f;\n"
     "  randcase\n"
     "    k1: return c;\n"
     "    k2: return a;\n"
     "  endcase\n"
     "endfunction\n"},

    // This tests checks for not breaking around hierarchy operators.
    {"function\nvoid\twarranty;"
     "foo.bar = fancyfunction(aaaaaaaa.bbbbbbb,"
     "    ccccccccc.ddddddddd) ;"
     "endfunction   :warranty\n",
     "function void warranty;\n"
     "  foo.bar = fancyfunction(\n"
     "      aaaaaaaa.bbbbbbb,\n"
     "      ccccccccc.ddddddddd\n"
     "  );\n"
     "endfunction : warranty\n"},

    // Group of tests testing partitioning of arguments inside function calls
    {// function with function call inside if statement header
     "function foo;if(aa(bb,cc));endfunction\n",
     "function foo;\n"
     "  if (aa(bb, cc));\n"
     "endfunction\n"},
    {// function with function call inside if statement header and with
     // begin-end block
     "function foo;if (aa(bb,cc,dd,ee))begin end endfunction\n",
     "function foo;\n"
     "  if (aa(bb, cc, dd, ee)) begin\n"
     "  end\n"
     "endfunction\n"},
    {// function with kMethodCallExtension inside if statement header and with
     // begin-end block
     "function foo;if (aa.bb(cc,dd,ee))begin end endfunction\n",
     "function foo;\n"
     "  if (aa.bb(cc, dd, ee)) begin\n"
     "  end\n"
     "endfunction\n"},
    {// nested kMethodCallExtension calls - one level
     "function foo;aa.bb(cc.dd(a1), ee.ff(a2));endfunction\n",
     "function foo;\n"
     "  aa.bb(cc.dd(a1), ee.ff(a2));\n"
     "endfunction\n"},
    {// nested kMethodCallExtension calls - two level
     "function foo;aa.bb(cc.dd(a1.b1(a2), b1), ee.ff(c1, d1));endfunction\n",
     "function foo;\n"
     "  aa.bb(cc.dd(a1.b1(a2), b1), ee.ff(\n"
     "        c1, d1));\n"
     "endfunction\n"},

    {// simple initial statement with function call
     "module m;initial aa(bb,cc,dd,ee);endmodule\n",
     "module m;\n"
     "  initial aa(bb, cc, dd, ee);\n"
     "endmodule\n"},
    {// expressions and function calls inside if-statement headers
     "module m;initial begin if(aa(bb)==cc(dd))a=b;if (xx()) b = a;end "
     "endmodule\n",
     "module m;\n"
     "  initial begin\n"
     "    if (aa(bb) == cc(dd)) a = b;\n"
     "    if (xx()) b = a;\n"
     "  end\n"
     "endmodule\n"},
    {// fuction with two arguments inside if-statement headers
     "module\nm;initial\nbegin\nif(aa(bb,cc))x=y;end\nendmodule\n",
     "module m;\n"
     "  initial begin\n"
     "    if (aa(bb, cc)) x = y;\n"
     "  end\n"
     "endmodule\n"},
    {// kMethodCallExtension inside if-statement headers
     "module m;initial begin if (aa.bb(cc)) x = y;end endmodule",
     "module m;\n"
     "  initial begin\n"
     "    if (aa.bb(cc)) x = y;\n"
     "  end\n"
     "endmodule\n"},
    {// initial statement with object method call
     "module m; initial a.b(a,b,c); endmodule\n",
     "module m;\n"
     "  initial a.b(a, b, c);\n"
     "endmodule\n"},
    {// initial statement with method call on indexed object
     "module m; initial a[i].b(a,b,c); endmodule\n",
     "module m;\n"
     "  initial a[i].b(a, b, c);\n"
     "endmodule\n"},
    {// initial statement with method call on function returned object
     "module m; initial a(d,e,f).b(a,b,c); endmodule\n",
     "module m;\n"
     "  initial a(d, e, f).b(a, b, c);\n"
     "endmodule\n"},
    {// initial statement with indexed access to function returned object
     "module m; initial a(a,b,c)[i]; endmodule\n",
     "module m;\n"
     "  initial a(a, b, c) [i];\n"
     "endmodule\n"},
    {// method call with no arguments on an object
     "module m; initial foo.bar();endmodule\n",
     "module m;\n"
     "  initial foo.bar();\n"
     "endmodule\n"},
    {// method call with one argument on an object
     "module m; initial foo.bar(aa);endmodule\n",
     "module m;\n"
     "  initial foo.bar(aa);\n"
     "endmodule\n"},
    {// method call with two arguments on an object
     "module m; initial foo.bar(aa,bb);endmodule\n",
     "module m;\n"
     "  initial foo.bar(aa, bb);\n"
     "endmodule\n"},
    {// method call with three arguments on an object
     "module m; initial foo.bar(aa,bb,cc);endmodule\n",
     "module m;\n"
     "  initial foo.bar(aa, bb, cc);\n"
     "endmodule\n"},

    {
        // This tests for if-statements with null statements
        "function foo;"
        "if (zz) ; "
        "if (yy) ; "
        "endfunction",
        "function foo;\n"
        "  if (zz);\n"
        "  if (yy);\n"
        "endfunction\n",
    },

    {
        // This tests for if-statements starting on their own line.
        "function foo;"
        "if (zz) begin "
        "return 0;"
        "end "
        "if (yy) begin "
        "return 1;"
        "end "
        "endfunction",
        "function foo;\n"
        "  if (zz) begin\n"
        "    return 0;\n"
        "  end\n"
        "  if (yy) begin\n"
        "    return 1;\n"
        "  end\n"
        "endfunction\n",
    },

    {
        // This tests for if-statements with single statement bodies
        "function foo;"
        "if (zz) return 0;"
        "if (yy) return 1;"
        "endfunction",
        "function foo;\n"
        "  if (zz) return 0;\n"
        "  if (yy) return 1;\n"
        "endfunction\n",
    },

    {
        // This tests for if-statement mixed with plain statements
        "function foo;"
        "a=b;"
        "if (zz) return 0;"
        "c=d;"
        "endfunction",
        "function foo;\n"
        "  a = b;\n"
        "  if (zz) return 0;\n"
        "  c = d;\n"
        "endfunction\n",
    },

    {
        // This tests for if-statement with forced break mixed with others
        "function foo;"
        "a=b;"
        "if (zz)//\n return 0;"
        "c=d;"
        "endfunction",
        "function foo;\n"
        "  a = b;\n"
        "  if (zz)  //\n"
        "    return 0;\n"
        "  c = d;\n"
        "endfunction\n",
    },
    {
        "function t;"
        "if (r == t)"
        "a.b(c);"
        "endfunction",
        "function t;\n"
        "  if (r == t) a.b(c);\n"
        "endfunction\n",
    },

    {// This tests for for-statement with forced break mixed with others
     "function f;"
     "x=y;"
     "for (int i=0; i<S*IPS; i++) #1ps a += $urandom();"
     "return 2;"
     "endfunction",
     "function f;\n"
     "  x = y;\n"
     "  for (int i = 0; i < S * IPS; i++)\n"  // doesn't fit, so indents
     "    #1ps a += $urandom();\n"
     "  return 2;\n"
     "endfunction\n"},

    {
        // This tests for-statements with null statements
        "function foo;"
        "for(;;)  ;\t"
        "for(;;)  ;\t"
        "endfunction",
        "function foo;\n"
        "  for (;;);\n"
        "  for (;;);\n"
        "endfunction\n",
    },

    {
        // This tests for if-else-statements with null statements
        "function foo;"
        "if (zz) ;  else  ;"
        "if (yy) ;   else   ;"
        "endfunction",
        "function foo;\n"
        "  if (zz);\n"
        "  else;\n"
        "  if (yy);\n"
        "  else;\n"
        "endfunction\n",
    },

    {
        // This tests for end-else-begin.
        "function foo;"
        "if (zz) begin "
        "return 0;"
        "end "
        "else "
        "begin "
        "return 1;"
        "end "
        "endfunction",
        "function foo;\n"
        "  if (zz) begin\n"
        "    return 0;\n"
        "  end else begin\n"
        "    return 1;\n"
        "  end\n"
        "endfunction\n",
    },
    {
        // This tests for end-else-if
        "function foo;"
        "if (zz) begin "
        "return 0;"
        "end "
        "else "
        "if(yy)begin "
        "return 1;"
        "end "
        "endfunction",
        "function foo;\n"
        "  if (zz) begin\n"
        "    return 0;\n"
        "  end else if (yy) begin\n"
        "    return 1;\n"
        "  end\n"
        "endfunction\n",
    },
    {
        // This tests labeled end-else-if
        "function foo;"
        "if (zz) begin : label1 "
        "return 0;"
        "end : label1 "
        "else if (yy) begin : label2 "
        "return 1;"
        "end : label2 "
        "endfunction",
        "function foo;\n"
        "  if (zz) begin : label1\n"
        "    return 0;\n"
        "  end : label1\n"
        "  else if (yy) begin : label2\n"
        "    return 1;\n"
        "  end : label2\n"
        "endfunction\n",
    },
    {
        // This tests labeled end-else-if-else
        "function foo;"
        "if (zz) begin : label1 "
        "return 0;"
        "end : label1 "
        "else if (yy) begin : label2 "
        "return 1;"
        "end : label2 "
        "else begin : label3 "
        "return 2;"
        "end : label3 "
        "endfunction",
        "function foo;\n"
        "  if (zz) begin : label1\n"
        "    return 0;\n"
        "  end : label1\n"
        "  else if (yy) begin : label2\n"
        "    return 1;\n"
        "  end : label2\n"
        "  else begin : label3\n"
        "    return 2;\n"
        "  end : label3\n"
        "endfunction\n",
    },

    {
        // randomize function
        "function r ;"
        "if ( ! randomize (bar )) begin    end "
        "if ( ! obj.randomize (bar )) begin    end "
        "endfunction",
        "function r;\n"
        "  if (!randomize(bar)) begin\n"
        "  end\n"
        "  if (!obj.randomize(bar)) begin\n"
        "  end\n"
        "endfunction\n",
    },
    {
        // randomize-with call, with comments
        "function f;"
        "s = std::randomize() with {\n"
        "// comment1\n"
        "a == e;\n"
        "// comment2\n"
        "};"
        "endfunction\n",
        "function f;\n"
        "  s = std::randomize() with {\n"
        "    // comment1\n"
        "    a == e;\n"
        "    // comment2\n"
        "  };\n"
        "endfunction\n",
    },
    {
        // randomize-with call, with comments, one joined
        "function f;"
        "s = std::randomize() with {\n"
        "// comment1\n"
        "a == e;// comment2\n"
        "};"
        "endfunction\n",
        "function f;\n"
        "  s = std::randomize() with {\n"
        "    // comment1\n"
        "    a == e;  // comment2\n"
        "  };\n"
        "endfunction\n",
    },
    {
        // randomize-with call, with comment, and conditional
        "function f;"
        "s = std::randomize() with {\n"
        "// comment\n"
        "a == e;"
        "if (x) {"
        "a;"
        "}"
        "};"
        "endfunction\n",
        "function f;\n"
        "  s = std::randomize() with {\n"
        "    // comment\n"
        "    a == e;\n"
        "    if (x) {a;}\n"  // TODO(fangism): consider expanding
        "  };\n"
        "endfunction\n",
    },

    // module declaration test cases
    {"   module       foo  ;     endmodule\n",
     "module foo;\n"
     "endmodule\n"},
    {"   module       foo   (    )   ;     endmodule\n",
     "module foo ();\n"
     "endmodule\n"},
    {"   module       foo   (  .x (  x) );     endmodule\n",
     "module foo (\n"
     "    .x(x)\n"
     ");\n"
     "endmodule\n"},
    {"   module       foo   (  .x (  x)  \n,\n . y "
     "  ( \ny) );     endmodule\n",
     "module foo (\n"
     "    .x(x),\n"
     "    .y(y)\n"
     ");\n"
     "endmodule\n"},

    // module instantiation test cases
    {"  module foo   ; bar bq();endmodule\n",
     "module foo;\n"
     "  bar bq ();\n"  // single instance
     "endmodule\n"},
    {"  module foo   ; bar bq(), bq2(  );endmodule\n",
     "module foo;\n"
     "  bar bq (), bq2 ();\n"  // multiple instances, still fitting on one line
     "endmodule\n"},
    {"module foo; bar #(.N(N)) bq (.bus(bus));endmodule\n",
     // instance parameter and port fits on line
     "module foo;\n"
     "  bar #(.N(N)) bq (.bus(bus));\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N),.M(M)) bq ();endmodule\n",  // two named params
     "module foo;\n"
     "  bar #(\n"
     "      .N(N),\n"
     "      .M(M)\n"
     "  ) bq ();\n"
     "endmodule\n"},
    {"module foo; bar #(//comment\n.N(N),.M(M)) bq ();endmodule\n",
     "module foo;\n"
     "  bar #(  //comment\n"  // EOL comment before first param
     "      .N(N),\n"
     "      .M(M)\n"
     "  ) bq ();\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N),//comment\n.M(M)) bq ();endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      .N(N),  //comment\n"  // EOL comment after first param
     "      .M(M)\n"
     "  ) bq ();\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N),.M(M)//comment\n) bq ();endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      .N(N),\n"
     "      .M(M)   //comment\n"  // EOL comment after last param
     "  ) bq ();\n"
     "endmodule\n"},
    {"  module foo   ; bar bq(aa,bb,cc);endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      aa,\n"
     "      bb,\n"
     "      cc\n"
     "  );\n"  // multiple positional ports, one per line
     "endmodule\n"},
    {"  module foo   ; bar bq(aa,\n"
     "`ifdef BB\n"
     "bb,\n"
     "`endif\n"
     "cc);endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      aa,\n"
     "`ifdef BB\n"
     "      bb,\n"  // keep same indentation as outside conditional
     "`endif\n"
     "      cc\n"
     "  );\n"  // multiple positional ports, one per line
     "endmodule\n"},
    {"  module foo   ; bar bq(.aa,.bb);endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa,\n"
     "      .bb\n"
     "  );\n"  // multiple named ports, one per line
     "endmodule\n"},
    {"  module foo   ; bar bq(.aa(aa),.bb(bb));endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa(aa),\n"
     "      .bb(bb)\n"
     "  );\n"  // multiple named ports, one per line
     "endmodule\n"},
    {"  module foo   ; bar bq(.aa(aa),\n"
     "`ifdef ZZ\n"
     ".zz(  zz  ),\n"
     "`else\n"
     ".yy(  yy  ),\n"
     "`endif\n"
     ".bb(bb)\n"
     ");endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa(aa),\n"
     "`ifdef ZZ\n"
     "      .zz(zz),\n"
     "`else\n"
     "      .yy(yy),\n"
     "`endif\n"
     "      .bb(bb)\n"
     "  );\n"  // multiple named ports, one per line
     "endmodule\n"},
    {"  module foo   ; bar#(NNNNNNNN)"
     "bq(.aa(aaaaaa),.bb(bbbbbb));endmodule\n",
     "module foo;\n"
     "  bar #(NNNNNNNN) bq (\n"
     "      .aa(aaaaaa),\n"
     "      .bb(bbbbbb)\n"
     "  );\n"
     "endmodule\n"},
    {" module foo   ; barrrrrrr "
     "bq(.aaaaaa(aaaaaa),.bbbbbb(bbbbbb));endmodule\n",
     "module foo;\n"
     "  barrrrrrr bq (\n"
     "      .aaaaaa(aaaaaa),\n"
     "      .bbbbbb(bbbbbb)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(.NNNNN(NNNNN)) bq (.bussss(bussss));endmodule\n",
     // instance parameter and port does not fit on line
     "module foo;\n"
     "  bar #(\n"
     "      .NNNNN(NNNNN)\n"
     "  ) bq (\n"
     "      .bussss(bussss)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(//\n.N(N)) bq (.bus(bus));endmodule\n",
     "module foo;\n"
     "  bar #(  //\n"  // would fit on one line, but forced to expand by //
     "      .N(N)\n"
     "  ) bq (\n"
     "      .bus(bus)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(\n"
     "`ifdef MM\n"
     ".M(M)\n"
     "`else\n"
     ".N(N)\n"
     "`endif\n"
     ") bq (.bus(bus));endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "`ifdef MM\n"
     "      .M(M)\n"
     "`else\n"
     "      .N(N)\n"
     "`endif\n"
     "  ) bq (\n"
     "      .bus(bus)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N)//\n) bq (.bus(bus));endmodule\n",
     "module foo;\n"
     "  bar #(\n"  // would fit on one line, but forced to expand by //
     "      .N(N)  //\n"
     "  ) bq (\n"
     "      .bus(bus)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N)) bq (//\n.bus(bus));endmodule\n",
     "module foo;\n"
     "  bar #(\n"  // would fit on one line, but forced to expand by //
     "      .N(N)\n"
     "  ) bq (  //\n"
     "      .bus(bus)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo; bar #(.N(N)) bq (.bus(bus)//\n);endmodule\n",
     "module foo;\n"
     "  bar #(\n"  // would fit on one line, but forced to expand by //
     "      .N(N)\n"
     "  ) bq (\n"
     "      .bus(bus)  //\n"
     "  );\n"
     "endmodule\n"},
    {" module foo   ; bar "
     "bq(.aaa(aaa),.bbb(bbb),.ccc(ccc),.ddd(ddd));endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aaa(aaa),\n"  // ports don't fit on one line, so expanded
     "      .bbb(bbb),\n"
     "      .ccc(ccc),\n"
     "      .ddd(ddd)\n"
     "  );\n"
     "endmodule\n"},
    {" module foo   ; bar "
     "bq(.aa(aa),.bb(bb),.cc(cc),.dd(dd));endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa(aa),\n"  // one named port per line
     "      .bb(bb),\n"
     "      .cc(cc),\n"
     "      .dd(dd)\n"
     "  );\n"
     "endmodule\n"},
    {" module foo   ; bar "
     "bq(.aa(aa),//\n.bb(bb),.cc(cc),.dd(dd));endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa(aa),  //\n"  // forced to expand by //
     "      .bb(bb),\n"
     "      .cc(cc),\n"
     "      .dd(dd)\n"
     "  );\n"
     "endmodule\n"},
    {" module foo   ; bar "
     "bq(.aa(aa),.bb(bb),.cc(cc),.dd(dd)//\n);endmodule\n",
     "module foo;\n"
     "  bar bq (\n"
     "      .aa(aa),\n"
     "      .bb(bb),\n"
     "      .cc(cc),\n"
     "      .dd(dd)   //\n"  // forced to expand by //
     "  );\n"
     "endmodule\n"},
    {// gate instantiation test
     "module m;"
     "and\tx0(a, \t\tb,c);"
     "or\nx1(a,  \n b,    d);"
     "endmodule\n",
     "module m;\n"
     "  and x0 (a, b, c);\n"
     "  or x1 (a, b, d);\n"
     "endmodule\n"},
    {// ifdef inside port actuals
     "module m;  foo bar   (\n"
     "`ifdef   BAZ\n"
     "`endif\n"
     ")  ;endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "`ifdef BAZ\n"
     "`endif\n"
     "  );\n"
     "endmodule\n"},
    {// ifdef inside port actuals after a port connection
     "module m;  foo bar   ( .a (a) ,\n"
     "`ifdef   BAZ\n"
     "`endif\n"
     ")  ;endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a(a),\n"
     "`ifdef BAZ\n"
     "`endif\n"
     "  );\n"
     "endmodule\n"},
    {// ifdef inside port actuals before a port connection
     "module m;  foo bar   (\n"
     "`ifdef   BAZ\n"
     "`endif\n"
     ". b(b) )  ;endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "`ifdef BAZ\n"
     "`endif\n"
     "      .b(b)\n"
     "  );\n"
     "endmodule\n"},
    {// ifdef-conditional port connection
     "module m;  foo bar   (\n"
     "`ifdef   BAZ\n"
     ". c (\tc) \n"
     "`endif\n"
     " )  ;endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "`ifdef BAZ\n"
     "      .c(c)\n"
     "`endif\n"
     "  );\n"
     "endmodule\n"},
    {// ifndef-else-conditional port connection
     "module m;  foo bar   (\n"
     "`ifndef   BAZ\n"
     ". c (\tc) \n"
     "  `else\n"
     " . d(d\t)\n"
     "  `endif\n"
     " )  ;endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "`ifndef BAZ\n"
     "      .c(c)\n"
     "`else\n"
     "      .d(d)\n"
     "`endif\n"
     "  );\n"
     "endmodule\n"},

    {
        // test that alternate top-syntax mode works
        "// verilog_syntax: parse-as-module-body\n"
        "`define           FOO\n",
        "// verilog_syntax: parse-as-module-body\n"
        "`define FOO\n",
    },
    {
        // test alternate parsing mode in macro expansion
        "class foo;\n"
        "`MY_MACRO(\n"
        " // verilog_syntax: parse-as-statements\n"
        " // EOL comment\n"
        " int count;\n"
        " if(cfg.enable) begin\n"
        " count = 1;\n"
        " end,\n"
        " utils_pkg::decrement())\n"
        "endclass\n",
        "class foo;\n"
        "  `MY_MACRO(\n"
        "      // verilog_syntax: parse-as-statements\n"
        "      // EOL comment\n"
        "      int count;\n"
        "      if (cfg.enable) begin\n"
        "        count = 1;\n"
        "      end, utils_pkg::decrement())\n"
        "endclass\n",
    },

    // tests top-level data declarations
    {"a;",  // implicit type
     "a;\n"},
    {"a\tb;",  // explicit type
     "a b;\n"},
    {"a;b;",
     "a;\n"
     "b;\n"},
    {"a ,b;",  // implicit type
     "a, b;\n"},
    /* TODO(b/149591599): implicit type data declarations in module body
    {"module\tm ;a ;endmodule",
     "module m;\n"
     "  a;\n"
     "endmodule\n"},
    */
    {"package\tp ;a ;endpackage",  // implicit type
     "package p;\n"
     "  a;\n"
     "endpackage\n"},
    {"package\tp ;a ,b ;endpackage",  // implicit type
     "package p;\n"
     "  a, b;\n"
     "endpackage\n"},
    {"package\tp ;a ;b ;endpackage",  // implicit type
     "package p;\n"
     "  a;\n"
     "  b;\n"
     "endpackage\n"},
    /* TODO(b/149591627) : implicit type data declarations in class body
    {"class\tc ;a ;endclass",
     "class c;\n"
     "  a;\n"
     "endclass\n"},
     */
    {"function\tf ;a ;endfunction",  // implicit type
     "function f;\n"
     "  a;\n"
     "endfunction\n"},
    {"function\tf ;a   ;x ;endfunction",  // implicit type
     "function f;\n"
     "  a;\n"
     "  x;\n"
     "endfunction\n"},
    /* TODO(b/149592527): multi-variable data declaration as block_item_decl
     // same inside tasks
    {"function\tf ;a  \t,x ;endfunction",  // implicit type
     "function f;\n"
     "  a, x;\n"
     "endfunction\n"},
     */
    {"task\tt ;a ;endtask",  // implicit type
     "task t;\n"
     "  a;\n"
     "endtask\n"},
    {"task\tt ;a   ;x ;endtask",  // implicit type
     "task t;\n"
     "  a;\n"
     "  x;\n"
     "endtask\n"},

    {// tests bind declaration
     "bind   foo   bar baz  ( . clk ( clk  ) ) ;",
     "bind foo bar baz (.clk(clk));\n"},
    {// tests bind declaration, with type params
     "bind   foo   bar# ( . W ( W ) ) baz  ( . clk ( clk  ) ) ;",
     "bind foo bar #(.W(W)) baz (.clk(clk));\n"},
    {// tests bind declarations
     "bind   foo   bar baz  ( ) ;"
     "bind goo  car  caz (   );",
     "bind foo bar baz ();\n"
     "bind goo car caz ();\n"},

    {"bind blah foo #( .MaxCount(MaxCount), .MaxDelta(MaxDelta)) bar ("
     "    .clk(clk), .rst(rst), .value(value) );",
     "bind blah foo #(\n"
     "    .MaxCount(MaxCount),\n"
     "    .MaxDelta(MaxDelta)\n"
     ") bar (\n"
     "    .clk  (clk),\n"
     "    .rst  (rst),\n"
     "    .value(value)\n"
     ");\n"},
    {
        "bind expaaaaaaaaaaand_meeee looooooooong_name# ("
        ".W(W_CONST), .H(H_CONST), .D(D_CONST)  )"
        "instaaance_name (.in(iiiiiiiin), .out(ooooooout), .clk(ccccccclk));",
        "bind expaaaaaaaaaaand_meeee\n"
        "    looooooooong_name #(\n"
        "    .W(W_CONST),\n"
        "    .H(H_CONST),\n"
        "    .D(D_CONST)\n"
        ") instaaance_name (\n"
        "    .in (iiiiiiiin),\n"
        "    .out(ooooooout),\n"
        "    .clk(ccccccclk)\n"
        ");\n",
    },

    {
        "bind expand_inst name# ("
        ".W(W_CONST), .H(H_CONST), .D(D_CONST)  )"
        "instaaance_name (.in(iiiiiiiin), .out(ooooooout), .clk(ccccccclk));",
        "bind expand_inst name #(\n"
        "    .W(W_CONST),\n"
        "    .H(H_CONST),\n"
        "    .D(D_CONST)\n"
        ") instaaance_name (\n"
        "    .in (iiiiiiiin),\n"
        "    .out(ooooooout),\n"
        "    .clk(ccccccclk)\n"
        ");\n",
    },

    {
        // tests import declaration
        "import  foo_pkg :: bar ;",
        "import foo_pkg::bar;\n",
    },
    {
        // tests import declaration with wildcard
        "import  foo_pkg :: * ;",
        "import foo_pkg::*;\n",
    },
    {
        // tests import declarations
        "import  foo_pkg :: *\t;"
        "import  goo_pkg\n:: thing ;",
        "import foo_pkg::*;\n"
        "import goo_pkg::thing;\n",
    },
    // preserve spaces inside [] dimensions, but limit spaces around ':' to one
    // and adjust everything else
    {"foo[W-1:0]a[0:K-1];",  // data declaration
     "foo [W-1:0] a[0:K-1];\n"},
    {"foo[W-1 : 0]a[0 : K-1];", "foo [W-1 : 0] a[0 : K-1];\n"},
    {"foo[W  -  1 : 0 ]a [ 0  :  K  -  1] ;",
     "foo [W  -  1 : 0] a[0 : K  -  1];\n"},
    // remove spaces between [...] [...] in multi-dimension arrays
    {"foo[K] [W]a;",  //
     "foo [K][W] a;\n"},
    {"foo b [K] [W] ;",  //
     "foo b[K][W];\n"},
    {"logic[K:1] [W:1]a;",  //
     "logic [K:1][W:1] a;\n"},
    {"logic b [K:1] [W:1] ;",  //
     "logic b[K:1][W:1];\n"},
    // spaces in bit slicing
    {
        // preserve 0 spaces
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7:2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7:2];\n"
        "end\n",
    },
    {
        // preserve 1 space
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7 : 2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },
    {
        // limit multiple spaces to 1
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7  :  2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },
    {
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7  : 2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },
    {
        // keep value on the left when symmetrizing
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7: 2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7:2];\n"
        "end\n",
    },
    {
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7:  2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7:2];\n"
        "end\n",
    },
    {
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7 :2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },
    {
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7 :  2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },
    {
        // use value on the left, but limit to 1 space
        "always_ff @(posedge clk) begin "
        "dummy  <=\tfoo  [  7  :2  ] ; "
        "end",
        "always_ff @(posedge clk) begin\n"
        "  dummy <= foo[7 : 2];\n"
        "end\n",
    },

    // task test cases
    {"task t ;endtask:t",  //
     "task t;\n"
     "endtask : t\n"},
    {"task t ;#   10 ;# 5ns ; # 0.1 ; # 1step ;endtask",
     "task t;\n"
     "  #10;\n"  // no space in delay expression
     "  #5ns;\n"
     "  #0.1;\n"
     "  #1step;\n"
     "endtask\n"},
    {"task t\n;a<=b ;c<=d ;endtask\n",
     "task t;\n"
     "  a <= b;\n"
     "  c <= d;\n"
     "endtask\n"},
    {"class c;   virtual protected task\tt  ( foo bar);"
     "a.a<=b.b;\t\tc.c\n<=   d.d; endtask   endclass",
     "class c;\n"
     "  virtual protected task t(foo bar);\n"
     "    a.a <= b.b;\n"
     "    c.c <= d.d;\n"
     "  endtask\n"
     "endclass\n"},
    {"task t;\n// statement comment\nendtask\n",
     "task t;\n"
     "  // statement comment\n"  // indented
     "endtask\n"},
    {"task t( );\n// statement comment\nendtask\n",
     "task t();\n"
     "  // statement comment\n"  // indented
     "endtask\n"},
    {"task t( input x  );\n"
     "// statement comment\n"
     "s();\n"
     "// statement comment\n"
     "endtask\n",
     "task t(input x);\n"
     "  // statement comment\n"  // indented
     "  s();\n"
     "  // statement comment\n"  // indented
     "endtask\n"},
    {"task fj;fork join fork join\tendtask",
     "task fj;\n"
     "  fork\n"
     "  join\n"
     "  fork\n"
     "  join\n"
     "endtask\n"},
    {"task fj;fork join_any fork join_any\tendtask",
     "task fj;\n"
     "  fork\n"
     "  join_any\n"
     "  fork\n"
     "  join_any\n"
     "endtask\n"},
    {"task fj;fork join_none fork join_none\tendtask",
     "task fj;\n"
     "  fork\n"
     "  join_none\n"
     "  fork\n"
     "  join_none\n"
     "endtask\n"},
    {"task fj;fork\n"
     "//c1\njoin\n"
     "//c2\n"
     "fork  \n"
     "//c3\n"
     "join\tendtask",
     "task fj;\n"
     "  fork\n"
     "    //c1\n"
     "  join\n"
     "  //c2\n"
     "  fork\n"
     "    //c3\n"
     "  join\n"
     "endtask\n"},
    {"task fj;\n"
     "fork "
     "begin "
     "end "
     "foo();"
     "begin "
     "end "
     "join_any endtask",
     "task fj;\n"
     "  fork\n"
     "    begin\n"
     "    end\n"
     "    foo();\n"
     "    begin\n"
     "    end\n"
     "  join_any\n"
     "endtask\n"},
    {
        // call and assertion statements
        "task  t ;Fire() ;assert ( x);assert(y );endtask",
        "task t;\n"
        "  Fire();\n"
        "  assert (x);\n"
        "  assert (y);\n"
        "endtask\n",
    },
    {
        // assertion statements with body clause
        "task  t ;Fire() ;assert ( x) fee ( );assert(y ) foo ( ) ;endtask",
        "task t;\n"
        "  Fire();\n"
        "  assert (x) fee();\n"
        "  assert (y) foo();\n"
        "endtask\n",
    },
    {
        // assertion statements with else clause
        "task  t ;Fire() ;assert ( x) else  fee ( );"
        "assert(y ) else  foo ( ) ;endtask",
        "task t;\n"
        "  Fire();\n"
        "  assert (x)\n"
        "  else fee();\n"
        "  assert (y)\n"
        "  else foo();\n"
        "endtask\n",
    },
    {
        // assertion statements with else clause
        "task  t ;Fire() ;assert ( x) fa(); else  fee ( );"
        "assert(y ) fi(); else  foo ( ) ;endtask",
        "task t;\n"
        "  Fire();\n"
        "  assert (x) fa();\n"
        "  else fee();\n"
        "  assert (y) fi();\n"
        "  else foo();\n"
        "endtask\n",
    },
    {
        // assume statements
        "task  t ;Fire() ;assume ( x);assume(y );endtask",
        "task t;\n"
        "  Fire();\n"
        "  assume (x);\n"
        "  assume (y);\n"
        "endtask\n",
    },
    {
        // cover statements
        "task  t ;Fire() ;cover ( x);cover(y );endtask",
        "task t;\n"
        "  Fire();\n"
        "  cover (x);\n"
        "  cover (y);\n"
        "endtask\n",
    },
    {
        // cover statements, with action
        "task  t ;Fire() ;cover ( x)g( );cover(y ) h();endtask",
        "task t;\n"
        "  Fire();\n"
        "  cover (x) g();\n"
        "  cover (y) h();\n"
        "endtask\n",
    },
    {
        // cover statements, with action block
        "task  t ;Fire() ;cover ( x) begin g( ); end "
        "cover(y ) begin h(); end endtask",
        "task t;\n"
        "  Fire();\n"
        "  cover (x) begin\n"
        "    g();\n"
        "  end\n"
        "  cover (y) begin\n"
        "    h();\n"
        "  end\n"
        "endtask\n",
    },
    {// shuffle calls
     "task t; foo. shuffle  ( );bar .shuffle( ); endtask",
     "task t;\n"
     "  foo.shuffle();\n"
     "  bar.shuffle();\n"
     "endtask\n"},
    {// wait statements (null)
     "task t; wait  (a==b);wait(c<d); endtask",
     "task t;\n"
     "  wait (a == b);\n"
     "  wait (c < d);\n"
     "endtask\n"},
    {// wait statements, single action statement
     "task t; wait  (a==b) p();wait(c<d) q(); endtask",
     "task t;\n"
     "  wait (a == b) p();\n"
     "  wait (c < d) q();\n"
     "endtask\n"},
    {// wait statements, block action statement
     "task t; wait  (a==b) begin p(); end "
     "wait(c<d) begin q(); end endtask",
     "task t;\n"
     "  wait (a == b) begin\n"
     "    p();\n"
     "  end\n"
     "  wait (c < d) begin\n"
     "    q();\n"
     "  end\n"
     "endtask\n"},
    {// wait fork statements
     "task t ; wait\tfork;wait   fork ;endtask",
     "task t;\n"
     "  wait fork;\n"
     "  wait fork;\n"
     "endtask\n"},
    {// labeled single statements (prefix-style)
     "task t;l1:x<=y ;endtask",
     "task t;\n"
     "  l1 : x <= y;\n"
     "endtask\n"},
    {// labeled block statements (prefix-style)
     "task t;l1:begin end:l1 endtask",
     "task t;\n"
     "  l1 : begin\n"
     "  end : l1\n"
     "endtask\n"},
    {// labeled seq block statements
     "task t;begin:l1 end:l1 endtask",
     "task t;\n"
     "  begin : l1\n"
     "  end : l1\n"
     "endtask\n"},
    {// labeled par block statements
     "task t;fork:l1 join:l1 endtask",
     "task t;\n"
     "  fork : l1\n"
     "  join : l1\n"
     "endtask\n"},
    {// task with disable statements
     "task  t ;fork\tjoin\tdisable\tfork;endtask",
     "task t;\n"
     "  fork\n"
     "  join\n"
     "  disable fork;\n"
     "endtask\n"},
    {"task  t ;fork\tjoin_any\tdisable\tfork  ;endtask",
     "task t;\n"
     "  fork\n"
     "  join_any\n"
     "  disable fork;\n"
     "endtask\n"},
    {"task  t ;disable\tbean_counter  ;endtask",
     "task t;\n"
     "  disable bean_counter;\n"
     "endtask\n"},
    {
        // task with if-statement
        "task t;"
        "if (r == t)"
        "a.b(c);"
        "endtask",
        "task t;\n"
        "  if (r == t) a.b(c);\n"
        "endtask\n",
    },
    {
        // task with system call inside if header
        "task t;"
        "if (!$cast(ssssssssssssssss,vvvvvvvvvv,gggggggg))begin end endtask:t",
        "task t;\n"
        "  if (!$cast(\n"
        "          ssssssssssssssss,\n"
        "          vvvvvvvvvv,\n"
        "          gggggggg\n"
        "      )) begin\n"
        "  end\n"
        "endtask : t\n",
    },
    {
        // task with nested subtask call and arguments passed by name
        "task t;"
        "if (!$cast(ssssssssssssssss, vvvvvvvvvv.gggggggg("
        ".ppppppp(ppppppp),"
        ".yyyyy(\"xxxxxxxxxxxxx\")"
        "))) begin "
        "end "
        "endtask : t",
        "task t;\n"
        "  if (!$cast(\n"
        "          ssssssssssssssss,\n"
        "          vvvvvvvvvv.gggggggg(\n"
        "              .ppppppp(ppppppp),\n"
        "              .yyyyy(\"xxxxxxxxxxxxx\")\n"
        "          )\n"
        "      )) begin\n"
        "  end\n"
        "endtask : t\n",
    },

    {
        // assert property statements
        "task  t ;assert  property( x);assert\tproperty(y );endtask",
        "task t;\n"
        "  assert property (x);\n"
        "  assert property (y);\n"
        "endtask\n",
    },
    {
        // assert property statements, with action
        "task  t ;assert  property( x) j();assert\tproperty(y )k( );endtask",
        "task t;\n"
        "  assert property (x) j();\n"
        "  assert property (y) k();\n"
        "endtask\n",
    },
    {
        // assert property statements, with action block
        "task  t ;assert  property( x) begin j();end "
        " assert\tproperty(y )begin\tk( );  end endtask",
        "task t;\n"
        "  assert property (x) begin\n"
        "    j();\n"
        "  end\n"
        "  assert property (y) begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // assert property statements, else with null
        "task  t ;assert  property( x) else;assert\tproperty(y )else;endtask",
        "task t;\n"
        "  assert property (x)\n"
        "  else;\n"
        "  assert property (y)\n"
        "  else;\n"
        "endtask\n",
    },
    {
        // assert property statements, else with actions
        "task  t ;assert  property( x) f(); else p(); "
        "\tassert\tproperty(y ) g();else  q( );endtask",
        "task t;\n"
        "  assert property (x) f();\n"
        "  else p();\n"
        "  assert property (y) g();\n"
        "  else q();\n"
        "endtask\n",
    },
    {
        // assert property statement, with action block, else statement
        "task  t ;assert  property( x) begin j();end  else\tk( );  endtask",
        "task t;\n"
        "  assert property (x) begin\n"
        "    j();\n"
        "  end else k();\n"
        "endtask\n",
    },
    {
        // assert property statement, with action statement, else block
        "task  t ;assert  property( x) j();  else  begin\tk( );end  endtask",
        "task t;\n"
        "  assert property (x) j();\n"
        "  else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // assert property statement, with action block, else block
        "task  t ;assert  property( x)begin j();end  "
        "else  begin\tk( );end  endtask",
        "task t;\n"
        "  assert property (x) begin\n"
        "    j();\n"
        "  end else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },

    {
        // assume property statements
        "task  t ;assume  property( x);assume\tproperty(y );endtask",
        "task t;\n"
        "  assume property (x);\n"
        "  assume property (y);\n"
        "endtask\n",
    },
    {
        // assume property statements, with action
        "task  t ;assume  property( x) j();assume\tproperty(y )k( );endtask",
        "task t;\n"
        "  assume property (x) j();\n"
        "  assume property (y) k();\n"
        "endtask\n",
    },
    {
        // assume property statements, with action block
        "task  t ;assume  property( x) begin j();end "
        " assume\tproperty(y )begin\tk( );  end endtask",
        "task t;\n"
        "  assume property (x) begin\n"
        "    j();\n"
        "  end\n"
        "  assume property (y) begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // assume property statements, else with null
        "task  t ;assume  property( x) else;assume\tproperty(y )else;endtask",
        "task t;\n"
        "  assume property (x)\n"
        "  else;\n"
        "  assume property (y)\n"
        "  else;\n"
        "endtask\n",
    },
    {
        // assume property statements, else with actions
        "task  t ;assume  property( x) f(); else p(); "
        "\tassume\tproperty(y ) g();else  q( );endtask",
        "task t;\n"
        "  assume property (x) f();\n"
        "  else p();\n"
        "  assume property (y) g();\n"
        "  else q();\n"
        "endtask\n",
    },
    {
        // assume property statement, with action block, else statement
        "task  t ;assume  property( x) begin j();end  else\tk( );  endtask",
        "task t;\n"
        "  assume property (x) begin\n"
        "    j();\n"
        "  end else k();\n"
        "endtask\n",
    },
    {
        // assume property statement, with action statement, else block
        "task  t ;assume  property( x) j();  else  begin\tk( );end  endtask",
        "task t;\n"
        "  assume property (x) j();\n"
        "  else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // assume property statement, with action block, else block
        "task  t ;assume  property( x)begin j();end  "
        "else  begin\tk( );end  endtask",
        "task t;\n"
        "  assume property (x) begin\n"
        "    j();\n"
        "  end else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },

    {
        // expect property statements
        "task  t ;expect  ( x);expect\t(y );endtask",
        "task t;\n"
        "  expect (x);\n"
        "  expect (y);\n"
        "endtask\n",
    },
    {
        // expect property statements, with action
        "task  t ;expect  ( x) j();expect\t(y )k( );endtask",
        "task t;\n"
        "  expect (x) j();\n"
        "  expect (y) k();\n"
        "endtask\n",
    },
    {
        // expect property statements, with action block
        "task  t ;expect  ( x) begin j();end "
        " expect\t(y )begin\tk( );  end endtask",
        "task t;\n"
        "  expect (x) begin\n"
        "    j();\n"
        "  end\n"
        "  expect (y) begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // expect property statements, else with null
        "task  t ;expect  ( x) else;expect\t(y )else;endtask",
        "task t;\n"
        "  expect (x)\n"
        "  else;\n"
        "  expect (y)\n"
        "  else;\n"
        "endtask\n",
    },
    {
        // expect property statements, else with actions
        "task  t ;expect  ( x) f(); else p(); "
        "\texpect\t(y ) g();else  q( );endtask",
        "task t;\n"
        "  expect (x) f();\n"
        "  else p();\n"
        "  expect (y) g();\n"
        "  else q();\n"
        "endtask\n",
    },
    {
        // expect property statement, with action block, else statement
        "task  t ;expect  ( x) begin j();end  else\tk( );  endtask",
        "task t;\n"
        "  expect (x) begin\n"
        "    j();\n"
        "  end else k();\n"
        "endtask\n",
    },
    {
        // expect property statement, with action statement, else block
        "task  t ;expect  ( x) j();  else  begin\tk( );end  endtask",
        "task t;\n"
        "  expect (x) j();\n"
        "  else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },
    {
        // expect property statement, with action block, else block
        "task  t ;expect  ( x)begin j();end  "
        "else  begin\tk( );end  endtask",
        "task t;\n"
        "  expect (x) begin\n"
        "    j();\n"
        "  end else begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },

    {
        // cover property statements
        "task  t ;cover  property( x);cover\tproperty(y );endtask",
        "task t;\n"
        "  cover property (x);\n"
        "  cover property (y);\n"
        "endtask\n",
    },
    {
        // cover property statements, with action
        "task  t ;cover  property( x) j();cover\tproperty(y )k( );endtask",
        "task t;\n"
        "  cover property (x) j();\n"
        "  cover property (y) k();\n"
        "endtask\n",
    },
    {
        // cover property statements, with action block
        "task  t ;cover  property( x) begin j();end "
        " cover\tproperty(y )begin\tk( );  end endtask",
        "task t;\n"
        "  cover property (x) begin\n"
        "    j();\n"
        "  end\n"
        "  cover property (y) begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },

    {
        // cover sequence statements
        "task  t ;cover  sequence( x);cover\tsequence(y );endtask",
        "task t;\n"
        "  cover sequence (x);\n"
        "  cover sequence (y);\n"
        "endtask\n",
    },
    {
        // cover sequence statements, with action
        "task  t ;cover  sequence( x) j();cover\tsequence(y )k( );endtask",
        "task t;\n"
        "  cover sequence (x) j();\n"
        "  cover sequence (y) k();\n"
        "endtask\n",
    },
    {
        // cover sequence statements, with action block
        "task  t ;cover  sequence( x) begin j();end "
        " cover\tsequence(y )begin\tk( );  end endtask",
        "task t;\n"
        "  cover sequence (x) begin\n"
        "    j();\n"
        "  end\n"
        "  cover sequence (y) begin\n"
        "    k();\n"
        "  end\n"
        "endtask\n",
    },

    {// module with disable statements
     "module m;always begin :block disable m.block; end endmodule",
     "module m;\n"
     "  always begin : block\n"
     "    disable m.block;\n"
     "  end\n"
     "endmodule\n"},
    {"module m;always begin disable m.block; end endmodule",
     "module m;\n"
     "  always begin\n"
     "    disable m.block;\n"
     "  end\n"
     "endmodule\n"},

    // property test cases
    {"module mp ;property p1 ; a|->b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a |-> b;\n"
     "  endproperty\n"
     "endmodule\n"},
    {"module mp ;property p1 ; a|->b;endproperty:p1 endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a |-> b;\n"
     "  endproperty : p1\n"  // with end label
     "endmodule\n"},
    {"module mp ;property p1 ; a|->## 1  b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a |-> ##1 b;\n"  // with delay
     "  endproperty\n"
     "endmodule\n"},
    {"module mp ;property p1 ; a|->## [0: 1]  b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a |-> ##[0:1] b;\n"  // prefer no spaces with delay range
     "  endproperty\n"
     "endmodule\n"},
    {"module mp ;property p1 ; a|->## [0  : 1]  b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a |-> ##[0 : 1] b;\n"  // limit to one space, symmetrize
     "  endproperty\n"
     "endmodule\n"},
    {"module mp ;property p1 ; a## 1  b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    a ##1 b;\n"
     "  endproperty\n"
     "endmodule\n"},
    {"module mp ;property p1 ; (a^c)## 1  b;endproperty endmodule",
     "module mp;\n"
     "  property p1;\n"
     "    (a ^ c) ##1 b;\n"
     "  endproperty\n"
     "endmodule\n"},

    // covergroup test cases
    {// Minimal case
     "covergroup c; endgroup\n",
     "covergroup c;\n"
     "endgroup\n"},
    {// Minimal useful case
     "covergroup c @ (posedge clk); coverpoint a; endgroup\n",
     "covergroup c @(posedge clk);\n"
     "  coverpoint a;\n"
     "endgroup\n"},
    {// Multiple coverpoints
     "covergroup foo @(posedge clk); coverpoint a; coverpoint b; "
     "coverpoint c; coverpoint d; endgroup\n",
     "covergroup foo @(posedge clk);\n"
     "  coverpoint a;\n"
     "  coverpoint b;\n"
     "  coverpoint c;\n"
     "  coverpoint d;\n"
     "endgroup\n"},
    {// Multiple bins
     "covergroup memory @ (posedge ce); address  :coverpoint addr {"
     "bins low={0,127}; bins high={128,255};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  address: coverpoint addr {\n"
     "    bins low = {0, 127};\n"
     "    bins high = {128, 255};\n"
     "  }\n"
     "endgroup\n"},
    {// Custom sample() function
     "covergroup c with function sample(bit i); endgroup\n",
     "covergroup c with function sample (\n"
     "    bit i\n"  // test cases are wrapped at 40
     ");\n"
     "endgroup\n"},

    // comment-controlled formatter disabling
    {"// verilog_format: off\n"  // disables whole file
     "  `include  \t\t  \"path/to/file.vh\"\n",
     "// verilog_format: off\n"
     "  `include  \t\t  \"path/to/file.vh\"\n"},  // keeps bad spacing
    {"/* verilog_format: off */\n"                // disables whole file
     "  `include  \t\t  \"path/to/file.svh\"  \n",
     "/* verilog_format: off */\n"
     "  `include  \t\t  \"path/to/file.svh\"  \n"},  // keeps bad spacing
    {"// verilog_format: on\n"  // already enabled, no effect
     "  `include  \t  \"path/to/file.svh\"  \t\n",
     "// verilog_format: on\n"
     "`include \"path/to/file.svh\"\n"},
    {"// verilog_format: off\n"
     "// verilog_format: on\n"  // re-enable right away
     "  `include  \t\t  \"path/to/file.svh\"  \n",
     "// verilog_format: off\n"
     "// verilog_format: on\n"
     "`include \"path/to/file.svh\"\n"},
    {"/* aaa *//* bbb */\n"                         // not formatting controls
     "  `include  \t\t  \"path/to/file.svh\"  \n",  // should format
     "/* aaa */  /* bbb */\n"  // currently inserts 2 spaces
     "`include \"path/to/file.svh\"\n"},
    {"/* verilog_format: off *//* verilog_format: on */\n"  // re-enable
     "  `include  \t\t  \"path/to/file.svh\"  \n",
     // Note that this case normally wouldn't fit in 40 columns,
     // but disabling formatting lets it overflow.
     "/* verilog_format: off *//* verilog_format: on */\n"
     "`include \"path/to/file.svh\"\n"},
    {"// verilog_format: off\n"
     "  `include  \t\t  \"path/to/fileA.svh\"  // verilog_format: on\n"
     "  `include  \t\t  \"path/to/fileB.svh\"  \n",
     // re-enable formatting with comment trailing other tokens
     "// verilog_format: off\n"
     "  `include  \t\t  \"path/to/fileA.svh\"  // verilog_format: on\n"
     "`include \"path/to/fileB.svh\"\n"},
    {"  `include  \t\t  \"path/to/file1.vh\" \n"  // format this
     "// verilog_format: off\n"                   // start disabling
     "  `include  \t\t  \"path/to/file2.vh\" \n"
     "\t\t\n"
     "  `include  \t\t  \"path/to/file3.vh\" \n"
     "// verilog_format: on\n"                     // stop disabling
     "  `include  \t\t  \"path/to/file4.vh\" \n",  // format this
     "`include \"path/to/file1.vh\"\n"
     "// verilog_format: off\n"  // start disabling
     "  `include  \t\t  \"path/to/file2.vh\" \n"
     "\t\t\n"
     "  `include  \t\t  \"path/to/file3.vh\" \n"
     "// verilog_format: on\n"  // stop disabling
     "`include \"path/to/file4.vh\"\n"},
    {// disabling formatting on a module (to end of file)
     "// verilog_format: off\n"
     "module m;endmodule\n",
     "// verilog_format: off\n"
     "module m;endmodule\n"},
    {// disabling formatting on a module (to end of file)
     "// verilog_format: off\n"
     "module m;\n"
     "unindented instantiation;\n"
     "endmodule\n",
     "// verilog_format: off\n"
     "module m;\n"
     "unindented instantiation;\n"
     "endmodule\n"},
    {// disabling formatting inside a port declaration list disables alignment,
     // but falls back to standard compaction.
     "module align_off(\n"
     "input w  ,\n"
     "    // verilog_format: off\n"
     "input wire  [y:z] wwww,\n"
     "    // verilog_format: on\n"
     "output  reg    xx\n"
     ");\n"
     "endmodule",
     "module align_off (\n"
     "    input w  ,\n"  // preserved because group is partially disabled
     "    // verilog_format: off\n"
     "input wire  [y:z] wwww,\n"  // not compacted
     "    // verilog_format: on\n"
     "    output  reg    xx\n"  // preserved because group is partially disabled
     ");\n"
     "endmodule\n"},

    {// multiple tokens with EOL comment
     "module please;  // don't break before the comment\n"
     "endmodule\n",
     "module please\n"
     "    ;  // don't break before the comment\n"
     "endmodule\n"},
    {// one token with EOL comment
     "module please;\n"
     "endmodule  // don't break before the comment\n",
     "module please;\n"
     "endmodule  // don't break before the comment\n"},
    {
        // line with only an EOL comment
        "module wild;\n"
        "// a really long comment on its own line to be left alone\n"
        "endmodule",
        "module wild;\n"
        "  // a really long comment on its own line to be left alone\n"
        "endmodule\n",
    },
    {
        // primitive declaration
        "primitive primitive1(o, s, r);output o;reg o;input s;input r;table 1 "
        "? :"
        " ? : 0; ? 1    : 0   : -; endtable endprimitive",
        "primitive primitive1(o, s, r);\n"
        "  output o;\n"
        "  reg o;\n"
        "  input s;\n"
        "  input r;\n"
        "  table\n"
        "    1 ? : ? : 0;\n"
        "    ? 1 : 0 : -;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // one-input combinatorial UDP
        "primitive primitive1 ( o,i ) ;output o;input i;"
        " table 1  :   0 ;   0  :  1 ; endtable endprimitive",
        "primitive primitive1(o, i);\n"
        "  output o;\n"
        "  input i;\n"
        "  table\n"
        "    1 : 0;\n"
        "    0 : 1;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // two-input combinatorial UDP
        "primitive primitive2(o, s, r);output o;input s;input r;"
        "table 1 ? : 0;? 1 : -; endtable endprimitive",
        "primitive primitive2(o, s, r);\n"
        "  output o;\n"
        "  input s;\n"
        "  input r;\n"
        "  table\n"
        "    1 ? : 0;\n"
        "    ? 1 : -;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // ten-input combinatorial UDP
        "primitive comb10(o, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9);"
        "output o;input i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;"
        "table 0 ? ? ? ? ? ? ? ? 0 : 0;1 ? ? ? ? ? ? ? ? 0 : 1;"
        "1 ? ? ? ? ? ? ? ? 1 : 1;0 ? ? ? ? ? ? ? ? 1 : 0;endtable endprimitive",
        "primitive comb10(o, i0, i1, i2, i3, i4,\n"
        "                 i5, i6, i7, i8, i9);\n"
        "  output o;\n"
        "  input i0, i1, i2, i3, i4, i5, i6, i7,\n"
        "      i8, i9;\n"
        "  table\n"
        "    0 ? ? ? ? ? ? ? ? 0 : 0;\n"
        "    1 ? ? ? ? ? ? ? ? 0 : 1;\n"
        "    1 ? ? ? ? ? ? ? ? 1 : 1;\n"
        "    0 ? ? ? ? ? ? ? ? 1 : 0;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // sequential level-sensitive UDP
        "primitive level_seq(o, c, d);output o;reg o;"
        "  input c;input d;table\n"
        "//  C D  state O\n"
        "0   ? : ? :  -;  // No Change\n"
        "? 0   : 0 :  0;  // Unknown\n"
        "endtable endprimitive",
        "primitive level_seq(o, c, d);\n"
        "  output o;\n"
        "  reg o;\n"
        "  input c;\n"
        "  input d;\n"
        "  table\n"
        "    //  C D  state O\n"
        "    0 ? : ? : -;  // No Change\n"
        "    ? 0 : 0 : 0;  // Unknown\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // sequential edge-sensitive UDP
        "primitive edge_seq(o, c, d);output o;reg o;input c;input d;"
        "table (01) 0 : ? :  0;(01) 1 : ? :  1;(0?) 1 : 1 :  1;(0?) 0 : 0 :  "
        "0;\n"
        "// ignore negative c\n"
        "(?0) ? : ? :  -;\n"
        "// ignore changes on steady c\n"
        "?  (?\?) : ? :  -; endtable endprimitive",
        "primitive edge_seq(o, c, d);\n"
        "  output o;\n"
        "  reg o;\n"
        "  input c;\n"
        "  input d;\n"
        "  table\n"
        "    (01) 0 : ? : 0;\n"
        "    (01) 1 : ? : 1;\n"
        "    (0?) 1 : 1 : 1;\n"
        "    (0?) 0 : 0 : 0;\n"
        "    // ignore negative c\n"
        "    (?0) ? : ? : -;\n"
        "    // ignore changes on steady c\n"
        "    ? (?\?) : ? : -;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    {
        // mixed sequential UDP
        "primitive mixed(o, clk, j, k, preset, clear);output o;reg o;"
        "input c;input j, k;input preset, clear;table "
        "?  ??  01:?:1 ; // preset logic\n"
        "?  ??  *1:1:1 ;?  ??  10:?:0 ; // clear logic\n"
        "?  ??  1*:0:0 ;r  00  00:0:1 ; // normal\n"
        "r  00  11:?:- ;r  01  11:?:0 ;r  10  11:?:1 ;r  11  11:0:1 ;"
        "r  11  11:1:0 ;f  ??  ??:?:- ;b  *?  ??:?:- ;"
        " // j and k\n"
        "b  ?*  ??:?:- ;endtable endprimitive\n",
        "primitive mixed(o, clk, j, k, preset,\n"
        "                clear);\n"
        "  output o;\n"
        "  reg o;\n"
        "  input c;\n"
        "  input j, k;\n"
        "  input preset, clear;\n"
        "  table\n"
        "    ? ? ? 0 1 : ? : 1;  // preset logic\n"
        "    ? ? ? * 1 : 1 : 1;\n"
        "    ? ? ? 1 0 : ? : 0;  // clear logic\n"
        "    ? ? ? 1 * : 0 : 0;\n"
        "    r 0 0 0 0 : 0 : 1;  // normal\n"
        "    r 0 0 1 1 : ? : -;\n"
        "    r 0 1 1 1 : ? : 0;\n"
        "    r 1 0 1 1 : ? : 1;\n"
        "    r 1 1 1 1 : 0 : 1;\n"
        "    r 1 1 1 1 : 1 : 0;\n"
        "    f ? ? ? ? : ? : -;\n"
        "    b * ? ? ? : ? : -;  // j and k\n"
        "    b ? * ? ? : ? : -;\n"
        "  endtable\n"
        "endprimitive\n",
    },
    // un-lexed multiline macro arg token
    {
        " task  S ; "
        "`ppgJH3JoxhwyTmZ2dgPiuMQzpRAWiSs("
        "{xYtxuh6.FIMcVPEWfhtoI2FSe, xYtxuh6.ZVL5XASVGLYz32} == "
        "SqRgavM[15:2];\n"
        "JgQLBG == 4'h0;, \"foo\" )\n"
        "endtask\n",
        "task S;\n"
        "  `ppgJH3JoxhwyTmZ2dgPiuMQzpRAWiSs(\n"
        "      {xYtxuh6.FIMcVPEWfhtoI2FSe, xYtxuh6.ZVL5XASVGLYz32} == "
        "SqRgavM[15:2];\n"
        "JgQLBG == 4'h0;,\n"
        "      \"foo\")\n"
        "endtask\n",
    },

    // module instantiation named ports tabular alignment
    //{// module instantiation with no port, only comments
    //    "module m;\n"
    //    "foo bar(\n"
    //    "\t//comment1\n"
    //    "//comment2\n"
    //    ");\n"
    //    "endmodule\n",
    //    "module m;\n"
    //    "  foo bar (\n"
    //    "      //comment1\n"
    //    "      //comment2\n"
    //    "  );\n"
    //    "endmodule\n"
    //},
    {// all named ports
     "module m;\n"
     "foo bar(.a(a), .aa(aa), .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aa (aa),\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {// named ports left unconnected
     "module m;\n"
     "foo bar(.a(), .aa(), .aaa());\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (),\n"
     "      .aa (),\n"
     "      .aaa()\n"
     "  );\n"
     "endmodule\n"},
    {// multiple named ports groups separated by blank line
     "module m;\n"
     "foo bar(.a(a), .aaa(aaa),\n\n .b(b), .bbbbbb(bbbbb));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aaa(aaa),\n"
     "\n"
     "      .b     (b),\n"
     "      .bbbbbb(bbbbb)\n"
     "  );\n"
     "endmodule\n"},
    {// named ports with concatenation
     "module m;\n"
     "foo bar(.a(a), .aaa({a,b,c}));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aaa({a, b, c})\n"
     "  );\n"
     "endmodule\n"},
    {// name ports with slices
     "module m;\n"
     "foo bar(.a(a), .aaa(q[r:s]));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aaa(q[r:s])\n"
     "  );\n"
     "endmodule\n"},
    {// named ports with pre-proc directives
     "module m;\n"
     "foo bar(.a(a), `ifdef MACRO .aa(aa), `endif .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "`ifdef MACRO\n"
     "      .aa (aa),\n"
     "`endif\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {// named ports with macros
     "module m;\n"
     "foo bar(.a(a), .aa(aa[`RANGE]), .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aa (aa[`RANGE]),\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {"module m;\n"
     "foo bar(.a(a), .AA, .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .AA,\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {// name ports with comments
     "module m;\n"
     "foo bar(.a(a), .aa(aa)/*comment*/, .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aa (aa)  /*comment*/,\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {"module m;\n"
     "foo bar(.a(a),//comment1\n .aaa(aaa)//comment2\n);\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),   //comment1\n"
     "      .aaa(aaa)  //comment2\n"
     "  );\n"
     "endmodule\n"},
    {"module m;\n"
     "foo bar(.a(a),\n"
     " //.aa(aa),\n"
     ".aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      //.aa(aa),\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},
    {"module m;\n"
     "foo bar(\n"
     ".a(a) //comment1\n"
     ", .aaa(aaa) //comment2\n"
     ") //comment3\n"
     ";\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "        .a  (a)    //comment1\n"
     "      , .aaa(aaa)  //comment2\n"
     "  )  //comment3\n"
     "  ;\n"
     "endmodule\n"},
    {// module instantiation with all implicit connections
     "module m;\n"
     "foo bar(.a, .aa, .aaaaa);\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a,\n"
     "      .aa,\n"
     "      .aaaaa\n"
     "  );\n"
     "endmodule\n"},
    {// named ports corssed with implicit connections
     "module m;\n"
     "foo bar(.a(a), .aa, .aaaaa(aaaaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a    (a),\n"
     "      .aa,\n"
     "      .aaaaa(aaaaa)\n"
     "  );\n"
     "endmodule\n"},
    {// named ports corssed with wildcard connections
     "module m;\n"
     "foo bar(.a(a), .aaa(aaa), .*);\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aaa(aaa),\n"
     "      .*\n"
     "  );\n"
     "endmodule\n"},
    {"module m;\n"
     "foo bar(.a(a), .aa(aa), .* , .aaa(aaa));\n"
     "endmodule\n",
     "module m;\n"
     "  foo bar (\n"
     "      .a  (a),\n"
     "      .aa (aa),\n"
     "      .*,\n"
     "      .aaa(aaa)\n"
     "  );\n"
     "endmodule\n"},

    // Parameterized data types, declarations inside #() tabular alignment
    {// parameterized module with 'list_of_param_assignments'
     "module foo #(A = 2, AA = 22, AAA = 222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    A   = 2,\n"
     "    AA  = 22,\n"
     "    AAA = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration'
     "module foo #(parameter int a = 2, parameter int aa = 22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter int a  = 2,\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration' and comments
     "module foo #(//comment\nparameter int a = 2, parameter int aa = 22);\n"
     "endmodule\n",
     "module foo #(  //comment\n"
     "    parameter int a  = 2,\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration' and trailing comments
     "module foo #(parameter int a = 2,//comment\n parameter int aa = 22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter int a  = 2,  //comment\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration' and pre-proc
     "module foo #(parameter int a = 2,\n"
     "`ifdef MACRO parameter int aa = 22, `endif\n"
     "parameter int aaa = 222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter int a   = 2,\n"
     "`ifdef MACRO\n"
     "    parameter int aa  = 22,\n"
     "`endif\n"
     "    parameter int aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration' and packed dimensions
     "module foo #(parameter logic [3:0] a = 2, parameter logic [30:0] aa = "
     "22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter logic [ 3:0] a  = 2,\n"
     "    parameter logic [30:0] aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'parameter_declaration' and unpacked
     // dimensions
     "module foo #(parameter logic a[3:0] = 2, parameter logic  aa [30:0] = "
     "22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter logic a [ 3:0] = 2,\n"
     "    parameter logic aa[30:0] = 22\n"
     ");\n"
     "endmodule\n"},

    {// parameterized module with 'local_parameter_declaration'
     "module foo #(localparam int a = 2, localparam int aa = 22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'local_parameter_declaration' and comments
     "module foo #(//comment\nlocalparam int a = 2, localparam int aa = 22);\n"
     "endmodule\n",
     "module foo #(  //comment\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'local_parameter_declaration' and trailing
     // comments
     "module foo #(localparam int a = 2,//comment\n localparam int aa = 22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam int a  = 2,  //comment\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'local_parameter_declaration' and pre-proc
     "module foo #(localparam int a = 2,\n"
     "`ifdef MACRO localparam int aa = 22, `endif\n"
     "localparam int aaa = 222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam int a   = 2,\n"
     "`ifdef MACRO\n"
     "    localparam int aa  = 22,\n"
     "`endif\n"
     "    localparam int aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'local_parameter_declaration' and packed
     // dimensions
     "module foo #(localparam logic [3:0] a = 2, localparam logic [30:0] aa = "
     "22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam logic [ 3:0] a  = 2,\n"
     "    localparam logic [30:0] aa = 22\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'local_parameter_declaration' and unpacked
     // dimensions
     "module foo #(localparam logic a[3:0] = 2, localparam logic  aa [30:0] = "
     "22);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam logic a [ 3:0] = 2,\n"
     "    localparam logic aa[30:0] = 22\n"
     ");\n"
     "endmodule\n"},

    {// parameterized module with 'data_type list_of_param_assignments'
     "module foo #( int a = 2,  real aa = 22, longint aaa = 222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    int     a   = 2,\n"
     "    real    aa  = 22,\n"
     "    longint aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // comments
     "module foo #(//comment\nint a = 2,  shortreal aa = 22, longint aaa = "
     "222);\n"
     "endmodule\n",
     "module foo #(  //comment\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // trailing comments
     "module foo #(int a = 2,  shortreal aa = 22,//comment\n longint aaa = "
     "222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,  //comment\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // pre-proc
     "module foo #(int a = 2,\n"
     "`ifdef MACRO shortreal aa = 22, `endif\n"
     " longint aaa = 222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    int       a   = 2,\n"
     "`ifdef MACRO\n"
     "    shortreal aa  = 22,\n"
     "`endif\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // packed dimensions
     "module foo #(bit [1:0] a = 2,  reg [12:0] aa = 22, logic [123:0] aaa = "
     "222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    bit   [  1:0] a   = 2,\n"
     "    reg   [ 12:0] aa  = 22,\n"
     "    logic [123:0] aaa = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // unpacked dimensions
     "module foo #(bit  a[1:0] = 2,  reg  aa[12:0] = 22, logic aaa [123:0]  = "
     "222);\n"
     "endmodule\n",
     "module foo #(\n"
     "    bit   a  [  1:0] = 2,\n"
     "    reg   aa [ 12:0] = 22,\n"
     "    logic aaa[123:0] = 222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'type list_of_type_assignments'
     "module foo #(type T = int, type TT = bit, type TTT= C#(logic) );\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'type list_of_type_assignments' and comments
     "module foo #(//comment\ntype T = int, type TT = bit, type TTT= C#(logic) "
     ");\n"
     "endmodule\n",
     "module foo #(  //comment\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // trailing comments
     "module foo #(type T = int, type TT = bit, //comment\n type TTT= "
     "C#(logic) );\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,       //comment\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // pre-proc
     "module foo #(type T = int,\n"
     "`ifdef MACRO type TT = bit, `endif\n"
     " type TTT= C#(logic));\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T   = int,\n"
     "`ifdef MACRO\n"
     "    type TT  = bit,\n"
     "`endif\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and
     // packed dimensions
     "module foo #(type T = int [3:0], type TT = bit [250:0]);\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T  = int [  3:0],\n"
     "    type TT = bit [250:0]\n"
     ");\n"
     "endmodule\n"},
    {"module foo #(type T = int, "
     "A = 2, int AA = 22, parameter AAA = 222, parameter longint AAAA = 2222, "
     "localparam AAAAA = 22222, localparam real AAAAAA = 222222"
     ");\n"
     "endmodule\n",
     "module foo #(\n"
     "               type    T      = int,\n"
     "                       A      = 2,\n"
     "               int     AA     = 22,\n"
     "    parameter          AAA    = 222,\n"
     "    parameter  longint AAAA   = 2222,\n"
     "    localparam         AAAAA  = 22222,\n"
     "    localparam real    AAAAAA = 222222\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with built-in data type
     "module foo #(int a = 2, real abc = 2234);\n"
     "endmodule\n",
     "module foo #(\n"
     "    int  a   = 2,\n"
     "    real abc = 2234\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with type
     "module foo #(type TYPE1 = int, type TYPE2 = boo);\n"
     "endmodule\n",
     "module foo #(\n"
     "    type TYPE1 = int,\n"
     "    type TYPE2 = boo\n"
     ");\n"
     "endmodule\n"},
    {"module foo#(localparam type TYPE1 = int, type TYPE22 = bool, parameter   "
     " type TYPE333 = real);\n"
     "endmodule\n",
     "module foo #(\n"
     "    localparam type TYPE1   = int,\n"
     "               type TYPE22  = bool,\n"
     "    parameter  type TYPE333 = real\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and 1D
     // packed dimensions
     "module foo #(parameter type T = int [3:0], type TT = bit [123:0]);\n"
     "endmodule\n",
     "module foo #(\n"
     "    parameter type T  = int [  3:0],\n"
     "              type TT = bit [123:0]\n"
     ");\n"
     "endmodule\n"},
    {// parameterized module with 'data_type list_of_param_assignments' and 2D
     // packed dimensions
     "module foo #(type T = int [3:0][123:0], type TT = bit [123:0][1:0]);\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T  = int [  3:0][123:0],\n"
     "    type TT = bit [123:0][  1:0]\n"
     ");\n"
     "endmodule\n"},
    {// parametrized module with user defined data types
     "module foo #(type T = my_type1_t, type TT = my_pkg::my_type2_t);\n"
     "endmodule\n",
     "module foo #(\n"
     "    type T  = my_type1_t,\n"
     "    type TT = my_pkg::my_type2_t\n"
     ");\n"
     "endmodule\n"},

    {// parameterized class with 'list_of_param_assignments'
     "class foo #(A = 2, AA = 22, AAA = 222);\n"
     "endclass\n",
     "class foo #(\n"
     "    A   = 2,\n"
     "    AA  = 22,\n"
     "    AAA = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration'
     "class foo #(parameter int a = 2, parameter int aa = 22);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter int a  = 2,\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration' and comments
     "class foo #(//comment\nparameter int a = 2, parameter int aa = 22);\n"
     "endclass\n",
     "class foo #(  //comment\n"
     "    parameter int a  = 2,\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration' and trailing comments
     "class foo #(parameter int a = 2,//comment\n parameter int aa = 22);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter int a  = 2,  //comment\n"
     "    parameter int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration' and pre-proc
     "class foo #(parameter int a = 2,\n"
     "`ifdef MACRO parameter int aa = 22, `endif\n"
     "parameter int aaa = 222);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter int a   = 2,\n"
     "`ifdef MACRO\n"
     "    parameter int aa  = 22,\n"
     "`endif\n"
     "    parameter int aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration' and packed dimensions
     "class foo #(parameter logic [3:0] a = 2, parameter logic [30:0] aa = "
     "22);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter logic [ 3:0] a  = 2,\n"
     "    parameter logic [30:0] aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'parameter_declaration' and unpacked dimensions
     "class foo #(parameter logic a[3:0] = 2, parameter logic  aa [30:0] = "
     "22);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter logic a [ 3:0] = 2,\n"
     "    parameter logic aa[30:0] = 22\n"
     ");\n"
     "endclass\n"},

    {// parameterized class with 'local_parameter_declaration'
     "class foo #(localparam int a = 2, localparam int aa = 22);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'local_parameter_declaration' and comments
     "class foo #(//comment\nlocalparam int a = 2, localparam int aa = 22);\n"
     "endclass\n",
     "class foo #(  //comment\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'local_parameter_declaration' and trailing
     // comments
     "class foo #(localparam int a = 2,//comment\n localparam int aa = 22);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam int a  = 2,  //comment\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'local_parameter_declaration' and pre-proc
     "class foo #(localparam int a = 2,\n"
     "`ifdef MACRO localparam int aa = 22, `endif\n"
     "localparam int aaa = 222);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam int a   = 2,\n"
     "`ifdef MACRO\n"
     "    localparam int aa  = 22,\n"
     "`endif\n"
     "    localparam int aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'local_parameter_declaration' and packed
     // dimensions
     "class foo #(localparam logic [3:0] a = 2, localparam logic [30:0] aa = "
     "22);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam logic [ 3:0] a  = 2,\n"
     "    localparam logic [30:0] aa = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'local_parameter_declaration' and unpacked
     // dimensions
     "class foo #(localparam logic a[3:0] = 2, localparam logic  aa [30:0] = "
     "22);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam logic a [ 3:0] = 2,\n"
     "    localparam logic aa[30:0] = 22\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments'
     "class foo #( int a = 2,  real aa = 22, longint aaa = 222);\n"
     "endclass\n",
     "class foo #(\n"
     "    int     a   = 2,\n"
     "    real    aa  = 22,\n"
     "    longint aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // comments
     "class foo #(//comment\nint a = 2,  shortreal aa = 22, longint aaa = "
     "222);\n"
     "endclass\n",
     "class foo #(  //comment\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // trailing comments
     "class foo #(int a = 2,  shortreal aa = 22,//comment\n longint aaa = "
     "222);\n"
     "endclass\n",
     "class foo #(\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,  //comment\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // pre-proc
     "class foo #(int a = 2,\n"
     "`ifdef MACRO shortreal aa = 22, `endif\n"
     " longint aaa = 222);\n"
     "endclass\n",
     "class foo #(\n"
     "    int       a   = 2,\n"
     "`ifdef MACRO\n"
     "    shortreal aa  = 22,\n"
     "`endif\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // packed dimensions
     "class foo #(bit [1:0] a = 2,  reg [12:0] aa = 22, logic [123:0] aaa = "
     "222);\n"
     "endclass\n",
     "class foo #(\n"
     "    bit   [  1:0] a   = 2,\n"
     "    reg   [ 12:0] aa  = 22,\n"
     "    logic [123:0] aaa = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // unpacked dimensions
     "class foo #(bit  a[1:0] = 2,  reg  aa[12:0] = 22, logic aaa [123:0]  = "
     "222);\n"
     "endclass\n",
     "class foo #(\n"
     "    bit   a  [  1:0] = 2,\n"
     "    reg   aa [ 12:0] = 22,\n"
     "    logic aaa[123:0] = 222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'type list_of_type_assignments'
     "class foo #(type T = int, type TT = bit, type TTT= C#(logic) );\n"
     "endclass\n",
     "class foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'type list_of_type_assignments' and comments
     "class foo #(//comment\ntype T = int, type TT = bit, type TTT= C#(logic) "
     ");\n"
     "endclass\n",
     "class foo #(  //comment\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // trailing comments
     "class foo #(type T = int, type TT = bit, //comment\n type TTT= C#(logic) "
     ");\n"
     "endclass\n",
     "class foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,       //comment\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // pre-proc
     "class foo #(type T = int,\n"
     "`ifdef MACRO type TT = bit, `endif\n"
     " type TTT= C#(logic));\n"
     "endclass\n",
     "class foo #(\n"
     "    type T   = int,\n"
     "`ifdef MACRO\n"
     "    type TT  = bit,\n"
     "`endif\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and
     // packed dimensions
     "class foo #(type T = int [3:0], type TT = bit [250:0]);\n"
     "endclass\n",
     "class foo #(\n"
     "    type T  = int [  3:0],\n"
     "    type TT = bit [250:0]\n"
     ");\n"
     "endclass\n"},
    {"class foo #(type T = int, "
     "A = 2, int AA = 22, parameter AAA = 222, parameter longint AAAA = 2222, "
     "localparam AAAAA = 22222, localparam real AAAAAA = 222222"
     ");\n"
     "endclass\n",
     "class foo #(\n"
     "               type    T      = int,\n"
     "                       A      = 2,\n"
     "               int     AA     = 22,\n"
     "    parameter          AAA    = 222,\n"
     "    parameter  longint AAAA   = 2222,\n"
     "    localparam         AAAAA  = 22222,\n"
     "    localparam real    AAAAAA = 222222\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with built-in data type
     "class foo #(int a = 2, real abc = 2234);\n"
     "endclass\n",
     "class foo #(\n"
     "    int  a   = 2,\n"
     "    real abc = 2234\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with type
     "class foo #(type TYPE1 = int, type TYPE2 = boo);\n"
     "endclass\n",
     "class foo #(\n"
     "    type TYPE1 = int,\n"
     "    type TYPE2 = boo\n"
     ");\n"
     "endclass\n"},
    {"class foo#(localparam type TYPE1 = int, type TYPE22 = bool, parameter    "
     "type TYPE333 = real);\n"
     "endclass\n",
     "class foo #(\n"
     "    localparam type TYPE1   = int,\n"
     "               type TYPE22  = bool,\n"
     "    parameter  type TYPE333 = real\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and 1D
     // packed dimensions
     "class foo #(parameter type T = int [3:0], type TT = bit [123:0]);\n"
     "endclass\n",
     "class foo #(\n"
     "    parameter type T  = int [  3:0],\n"
     "              type TT = bit [123:0]\n"
     ");\n"
     "endclass\n"},
    {// parameterized class with 'data_type list_of_param_assignments' and 2D
     // packed dimensions
     "class foo #(type T = int [3:0][123:0], type TT = bit [123:0][1:0]);\n"
     "endclass\n",
     "class foo #(\n"
     "    type T  = int [  3:0][123:0],\n"
     "    type TT = bit [123:0][  1:0]\n"
     ");\n"
     "endclass\n"},
    {// parametrized class with user defined data types
     "class foo #(type T = my_type1_t, type TT = my_pkg::my_type2_t);\n"
     "endclass\n",
     "class foo #(\n"
     "    type T  = my_type1_t,\n"
     "    type TT = my_pkg::my_type2_t\n"
     ");\n"
     "endclass\n"},

    {// parameterized interface with 'local_parameter_declaration'
     "interface foo #(localparam int a = 2, localparam int aa = 22);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'local_parameter_declaration' and comments
     "interface foo #(//comment\nlocalparam int a = 2, localparam int aa = "
     "22);\n"
     "endinterface\n",
     "interface foo #(  //comment\n"
     "    localparam int a  = 2,\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'local_parameter_declaration' and trailing
     // comments
     "interface foo #(localparam int a = 2,//comment\n localparam int aa = "
     "22);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam int a  = 2,  //comment\n"
     "    localparam int aa = 22\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'local_parameter_declaration' and pre-proc
     "interface foo #(localparam int a = 2,\n"
     "`ifdef MACRO localparam int aa = 22, `endif\n"
     "localparam int aaa = 222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam int a   = 2,\n"
     "`ifdef MACRO\n"
     "    localparam int aa  = 22,\n"
     "`endif\n"
     "    localparam int aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'local_parameter_declaration' and packed
     // dimensions
     "interface foo #(localparam logic [3:0] a = 2, localparam logic [30:0] aa "
     "= 22);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam logic [ 3:0] a  = 2,\n"
     "    localparam logic [30:0] aa = 22\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'local_parameter_declaration' and unpacked
     // dimensions
     "interface foo #(localparam logic a[3:0] = 2, localparam logic  aa [30:0] "
     "= 22);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam logic a [ 3:0] = 2,\n"
     "    localparam logic aa[30:0] = 22\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments'
     "interface foo #( int a = 2,  real aa = 22, longint aaa = 222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    int     a   = 2,\n"
     "    real    aa  = 22,\n"
     "    longint aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // comments
     "interface foo #(//comment\nint a = 2,  shortreal aa = 22, longint aaa = "
     "222);\n"
     "endinterface\n",
     "interface foo #(  //comment\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // trailing comments
     "interface foo #(int a = 2,  shortreal aa = 22,//comment\n longint aaa = "
     "222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    int       a   = 2,\n"
     "    shortreal aa  = 22,  //comment\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // pre-proc
     "interface foo #(int a = 2,\n"
     "`ifdef MACRO shortreal aa = 22, `endif\n"
     " longint aaa = 222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    int       a   = 2,\n"
     "`ifdef MACRO\n"
     "    shortreal aa  = 22,\n"
     "`endif\n"
     "    longint   aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // packed dimensions
     "interface foo #(bit [1:0] a = 2,  reg [12:0] aa = 22, logic [123:0] aaa "
     "= 222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    bit   [  1:0] a   = 2,\n"
     "    reg   [ 12:0] aa  = 22,\n"
     "    logic [123:0] aaa = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // unpacked dimensions
     "interface foo #(bit  a[1:0] = 2,  reg  aa[12:0] = 22, logic aaa [123:0]  "
     "= 222);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    bit   a  [  1:0] = 2,\n"
     "    reg   aa [ 12:0] = 22,\n"
     "    logic aaa[123:0] = 222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'type list_of_type_assignments'
     "interface foo #(type T = int, type TT = bit, type TTT= C#(logic) );\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'type list_of_type_assignments' and
     // comments
     "interface foo #(//comment\ntype T = int, type TT = bit, type TTT= "
     "C#(logic) );\n"
     "endinterface\n",
     "interface foo #(  //comment\n"
     "    type T   = int,\n"
     "    type TT  = bit,\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // trailing comments
     "interface foo #(type T = int, type TT = bit, //comment\n type TTT= "
     "C#(logic) );\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T   = int,\n"
     "    type TT  = bit,       //comment\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // pre-proc
     "interface foo #(type T = int,\n"
     "`ifdef MACRO type TT = bit, `endif\n"
     " type TTT= C#(logic));\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T   = int,\n"
     "`ifdef MACRO\n"
     "    type TT  = bit,\n"
     "`endif\n"
     "    type TTT = C#(logic)\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // packed dimensions
     "interface foo #(type T = int [3:0], type TT = bit [250:0]);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T  = int [  3:0],\n"
     "    type TT = bit [250:0]\n"
     ");\n"
     "endinterface\n"},
    {"interface foo #(type T = int, "
     "A = 2, int AA = 22, parameter AAA = 222, parameter longint AAAA = 2222, "
     "localparam AAAAA = 22222, localparam real AAAAAA = 222222"
     ");\n"
     "endinterface\n",
     "interface foo #(\n"
     "               type    T      = int,\n"
     "                       A      = 2,\n"
     "               int     AA     = 22,\n"
     "    parameter          AAA    = 222,\n"
     "    parameter  longint AAAA   = 2222,\n"
     "    localparam         AAAAA  = 22222,\n"
     "    localparam real    AAAAAA = 222222\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with built-in data type
     "interface foo #(int a = 2, real abc = 2234);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    int  a   = 2,\n"
     "    real abc = 2234\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with type
     "interface foo #(type TYPE1 = int, type TYPE2 = boo);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type TYPE1 = int,\n"
     "    type TYPE2 = boo\n"
     ");\n"
     "endinterface\n"},
    {"interface foo#(localparam type TYPE1 = int, type TYPE22 = bool, "
     "parameter    type TYPE333 = real);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    localparam type TYPE1   = int,\n"
     "               type TYPE22  = bool,\n"
     "    parameter  type TYPE333 = real\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // 1D packed dimensions
     "interface foo #(parameter type T = int [3:0], type TT = bit [123:0]);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    parameter type T  = int [  3:0],\n"
     "              type TT = bit [123:0]\n"
     ");\n"
     "endinterface\n"},
    {// parameterized interface with 'data_type list_of_param_assignments' and
     // 2D packed dimensions
     "interface foo #(type T = int [3:0][123:0], type TT = bit [123:0][1:0]);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T  = int [  3:0][123:0],\n"
     "    type TT = bit [123:0][  1:0]\n"
     ");\n"
     "endinterface\n"},
    {// parametrized interface with user defined data types
     "interface foo #(type T = my_type1_t, type TT = my_pkg::my_type2_t);\n"
     "endinterface\n",
     "interface foo #(\n"
     "    type T  = my_type1_t,\n"
     "    type TT = my_pkg::my_type2_t\n"
     ");\n"
     "endinterface\n"},
    {// wildcard import package at module header
     "module foo import bar::*; (baz); endmodule\n",
     "module foo\n"
     "  import bar::*;\n"
     "(\n"
     "    baz\n"
     ");\n"
     "endmodule\n"},
    {// import package at module header
     "module foo import bar::baz; (qux); endmodule\n",
     "module foo\n"
     "  import bar::baz;\n"
     "(\n"
     "    qux\n"
     ");\n"
     "endmodule\n"},
    {// wildcard import multiple packages at module header
     "module foo import bar::*,baz::*; (qux); endmodule\n",
     "module foo\n"
     "  import bar::*, baz::*;\n"
     "(\n"
     "    qux\n"
     ");\n"
     "endmodule\n"},
    {// separate package import declarations in module header
     "module foo import bar::*,baz::*; import q_pkg::qux; (qux); endmodule\n",
     "module foo\n"
     "  import bar::*, baz::*;\n"
     "  import q_pkg::qux;\n"
     "(\n"
     "    qux\n"
     ");\n"
     "endmodule\n"},
    {// import package at module header
     "module foo import bar::baz; #(int p = 3)(qux); endmodule\n",
     "module foo\n"
     "  import bar::baz;\n"
     "#(\n"
     "    int p = 3\n"
     ") (\n"
     "    qux\n"
     ");\n"
     "endmodule\n"},
    // Space between return keyword and return value
    {"function int foo(logic [31:0] data); return{<<8{data}}; endfunction",
     "function int foo(logic [31:0] data);\n"
     "  return {<<8{data}};\n"
     "endfunction\n"},
    {"function int f;return(1);endfunction",
     "function int f;\n"
     "  return (1);\n"
     "endfunction\n"},
    {"function int f;return-1;endfunction",
     "function int f;\n"
     "  return -1;\n"
     "endfunction\n"},
    {"function int f ;return    ! x\n;endfunction",
     "function int f;\n"
     "  return !x;\n"
     "endfunction\n"},
    {"function int f ;return    ~ x\n;endfunction",
     "function int f;\n"
     "  return ~x;\n"
     "endfunction\n"},
    {"function int f ;return    $x\n;endfunction",
     "function int f;\n"
     "  return $x;\n"
     "endfunction\n"},
    // String initializers
    {"string a[] = {\n\"a\"\n};\n", "string a[] = {\"a\"};\n"},
    {"string abc[] = {\n\"a\",\n\"b\",\n\"c\"\n};\n",
     "string abc[] = {\"a\", \"b\", \"c\"};\n"},
    {"string abc[] = {\n"
     "\"a\",//\n"
     "\"b\", \"c\"\n"
     "};\n",
     "string abc[] = {\"a\",  //\n"
     "                \"b\",\n"
     "                \"c\"};\n"},
    {"string abc[] = {//\n"
     "\"a\", \"b\", \"c\""
     "};\n",
     "string abc[] = {  //\n"
     "  \"a\",\n"
     "  \"b\",\n"
     "  \"c\"\n"
     "};\n"},
    {"string abc[] = {\n"
     "\"a\", \"b\", \"c\"//\n"
     "};\n",
     "string abc[] = {\"a\",\n"
     "                \"b\",\n"
     "                \"c\"  //\n"
     "                };\n"},
    {"string abc[] = {//\n"
     "\"a\",//\n"
     "\"b\", \"c\"//\n"
     "};\n",
     "string abc[] = {  //\n"
     "  \"a\",  //\n"
     "  \"b\",\n"
     "  \"c\"  //\n"
     "};\n"},
    {"string abc[] = {\n"
     "\"a\",\n"
     "// comment\n"
     "// comment\n"
     "\"b\",\n"
     "\"c\"\n"
     "};\n",
     "string abc[] = {\"a\",\n"
     "                // comment\n"
     "                // comment\n"
     "                \"b\",\n"
     "                \"c\"};\n"},
    {"string numbers[] = {\"one\", \"two\", \"three\", \"four\"};\n",
     "string numbers[] = {\"one\",\n"
     "                    \"two\",\n"
     "                    \"three\",\n"
     "                    \"four\"};\n"},
    {"string numbers[] = {\"one\", \"two\", THREE, \"four\"};\n",
     "string numbers[] = {\n"
     "  \"one\", \"two\", THREE, \"four\"\n"
     "};\n"},
    {"string numbers[] = {\"one\", {\"two\", \"three\"}, \"four\"};\n",
     "string numbers[] = {\n"
     "  \"one\", {\"two\", \"three\"}, \"four\"\n"
     "};\n"},
    {"string numbers[] = {\"one\", {\"two\", //\n"
     "\"three\"}, \"four\"};\n",
     "string numbers[] = {\n"
     "  \"one\",\n"
     "  {\n"
     "    \"two\",  //\n"
     "    \"three\"\n"
     "  },\n"
     "  \"four\"\n"
     "};\n"},
    {"string years[] = {\"two_thousand_nineteen\", \"two_thousand_twenty\",\n"
     "\"two_thousand_twenty_one\"};\n",
     // line with 3rd string would exceed column limit in unwrapped style
     "string years[] = {\n"
     "  \"two_thousand_nineteen\",\n"
     "  \"two_thousand_twenty\",\n"
     "  \"two_thousand_twenty_one\"\n"
     "};\n"},
    {"class class_name;\n"
     "var_type var_name = new(\"the_string\");\n"
     "endclass\n",
     "class class_name;\n"
     "  var_type var_name = new(\"the_string\");\n"
     "endclass\n"},

    //{   // parameterized class with 'parameter_declaration' and MACRO
    //    "class foo #(parameter int a = 2,\n"
    //    "parameter int aaa = `MACRO);\n"
    //    "endclass\n",
    //    "class foo #(\n"
    //    "    parameter int a   = 2,\n"
    //    "    parameter int aaa = `MACRO\n"
    //    ");\n"
    //    "endclass\n"
    //},
    // Struct/Union alignment
    {"typedef struct {\n"
     "bit [3:0] first; bit [31:0] second; generic_type_name_t third;\n"
     "} type_t;",
     "typedef struct {\n"
     "  bit [3:0]           first;\n"
     "  bit [31:0]          second;\n"
     "  generic_type_name_t third;\n"
     "} type_t;\n"},
    {"typedef struct {\n"
     "// comment\n"
     "bit [3:0] first; bit [31:0] second; generic_type_name_t third;\n"
     "} type_t;",
     "typedef struct {\n"
     "  // comment\n"
     "  bit [3:0]           first;\n"
     "  bit [31:0]          second;\n"
     "  generic_type_name_t third;\n"
     "} type_t;\n"},
    {"typedef struct {\n"
     "// comment 0\n"
     "bit [31:0] first; // a\n"
     "bit [31:0] second; // b\n"
     "bit third; // c\n"
     "uint fourth; // d\n"
     "\n"
     "// comment 1\n"
     "int fifth;\n"
     "// comment 2.1\n"
     "// comment 2.2\n"
     "uint sixth;\n"
     "} timing_cfg_t;",
     "typedef struct {\n"
     "  // comment 0\n"
     "  bit [31:0] first;   // a\n"
     "  bit [31:0] second;  // b\n"
     "  bit        third;   // c\n"
     "  uint       fourth;  // d\n"
     "\n"
     "  // comment 1\n"
     "  int  fifth;\n"
     "  // comment 2.1\n"
     "  // comment 2.2\n"
     "  uint sixth;\n"
     "} timing_cfg_t;\n"},
    {"typedef struct {\n"
     "// comment\n"
     "rand int r;\n"
     "int a;\n"
     "int aa = 0;\n"
     "int aaa = 1; // comment\n"
     "foo#(bar) z;\n"
     "int [x:y] zz; // comment\n"
     "int zzz[a:b];\n"
     "} type_t;",
     "typedef struct {\n"
     "  // comment\n"
     "  rand int   r;\n"
     "  int        a;\n"
     "  int        aa        = 0;\n"
     "  int        aaa       = 1;  // comment\n"
     "  foo #(bar) z;\n"
     "  int [x:y]  zz;             // comment\n"
     "  int        zzz[a:b];\n"
     "} type_t;\n"},
    {"typedef struct packed {\n"
     "struct packed { bit q; logic qq; logic qqq; } a_few_qs;\n"
     "struct packed {\n"
     "logic [1:0]  q;\n"
     "} one_q;\n"
     "int q;\n"
     "uint qq;\n"
     "} nested_qs_t;",
     "typedef struct packed {\n"
     "  struct packed {\n"
     "    bit   q;\n"
     "    logic qq;\n"
     "    logic qqq;\n"
     "  } a_few_qs;\n"
     "  struct packed {logic [1:0] q;} one_q;\n"
     "  int  q;\n"
     "  uint qq;\n"
     "} nested_qs_t;\n"},
    {"typedef struct packed {\n"
     "struct packed { bit q; logic qq; logic qqq; } a_few_qs;\n"
     "struct packed {\n"
     "// comment\n"
     "logic [1:0]  q;\n"
     "} one_q;\n"
     "int q;\n"
     "uint qq;\n"
     "} nested_qs_t;",
     "typedef struct packed {\n"
     "  struct packed {\n"
     "    bit   q;\n"
     "    logic qq;\n"
     "    logic qqq;\n"
     "  } a_few_qs;\n"
     "  struct packed {\n"
     "    // comment\n"
     "    logic [1:0] q;\n"
     "  } one_q;\n"
     "  int  q;\n"
     "  uint qq;\n"
     "} nested_qs_t;\n"},
    {"typedef struct {bit [3:0] first;\n"
     "`ifdef MACRO\n"
     "bit [31:0] second; generic_type_name_t third;\n"
     "`endif\n"
     "} type_t;\n",
     "typedef struct {\n"
     "  bit [3:0]           first;\n"
     "`ifdef MACRO\n"
     "  bit [31:0]          second;\n"
     "  generic_type_name_t third;\n"
     "`endif\n"
     "} type_t;\n"},
    {"typedef struct {\n"
     "bit [3:0] first // c\n"
     "; bit [31:0] second"
     "// c\n"
     "; generic_type_name_t third // c\n"
     ";} type_t;\n",
     "typedef struct {\n"
     "  bit [3:0]           first  // c\n"
     ";\n"
     "  bit [31:0]          second  // c\n"
     ";\n"
     "  generic_type_name_t third  // c\n"
     ";\n"
     "} type_t;\n"},
    // Continuation comment alignment
    {"`define BAR 1 // A\n"
     "module foo(); // B\n"
     "wire baz;     // C\n"
     "endmodule:foo // D\n",
     "`define BAR 1 // A\n"
     "module foo ();  // B\n"
     "  wire baz;  // C\n"
     "endmodule : foo  // D\n"},
    {"`define BAR 1 // A\n"
     "module foo(); // B\n"
     "              // B.1\n"
     "              // B.2\n"
     "wire baz;     // C\n"
     "              // C.1\n"
     "              // C.2\n"
     "endmodule:foo // D\n"
     "              // D.1\n"
     "              // D.2\n",
     "`define BAR 1 // A\n"
     "module foo ();  // B\n"
     "                // B.1\n"
     "                // B.2\n"
     "  wire baz;  // C\n"
     "             // C.1\n"
     "             // C.2\n"
     "endmodule : foo  // D\n"
     "                 // D.1\n"
     "                 // D.2\n"},
    {"// W\n"
     "`define BAR 1 // A\n"
     "   // X\n"
     "module foo(); // B\n"
     "              // B.1\n"
     "              // B.2\n"
     " // Y\n"
     "wire baz;     // C\n"
     "              // C.1\n"
     "              // C.2\n"
     "    // Z\n"
     "endmodule:foo // D\n"
     "              // D.1\n"
     "              // D.2\n",
     "// W\n"
     "`define BAR 1 // A\n"
     "// X\n"
     "module foo ();  // B\n"
     "                // B.1\n"
     "                // B.2\n"
     "  // Y\n"
     "  wire baz;  // C\n"
     "             // C.1\n"
     "             // C.2\n"
     "  // Z\n"
     "endmodule : foo  // D\n"
     "                 // D.1\n"
     "                 // D.2\n"},
    {"module foo( // A\n"
     "            // A.1\n"
     "// X\n"
     "input wire i1 [a:b], // B\n"
     "                     // B.1\n"
     "input [c:d] i2, // C\n"
     "                // C.1\n"
     "\n"
     "// Y\n"
     "output reg o1 // D\n"
     "              // D.1\n"
     ");endmodule:foo\n",
     "module foo (  // A\n"
     "              // A.1\n"
     "    // X\n"
     "    input wire       i1[a:b],  // B\n"
     "                               // B.1\n"
     "    input      [c:d] i2,       // C\n"
     "                               // C.1\n"
     "\n"
     "    // Y\n"
     "    output reg o1  // D\n"
     "                   // D.1\n"
     ");\n"
     "endmodule : foo\n"},
    // Continuation comment's original starting column is allowed to differ from
    // starting comment's original starting column at most by 1.
    // Starting column of comments B and C will change after formatting.
    // TODO: refine the column alignment depending on current vs previous line.
    // https://github.com/chipsalliance/verible/pull/858#discussion_r672844015
    {"module foo ();  // A\n"     // Starting comment; already on correct column
     "                 // A.1\n"  // A's column + 1
     "               // A.2\n"    // A's column - 1
     "wire baz;      // B\n"      // Starting comment; will be moved left
     "              // B.1\n"     // B's column - 1
     "                // B.2\n"   // B's column + 1
     "               // B.3\n"    // B's column
     "endmodule:foo // C\n"       // Starting comment; will be moved right
     "               // C.1\n"    // C's column + 1
     "             // C.2\n",     // C's column - 1
     "module foo ();  // A\n"
     "                // A.1\n"
     "                // A.2\n"
     "  wire baz;  // B\n"
     "             // B.1\n"
     "             // B.2\n"
     "             // B.3\n"
     "endmodule : foo  // C\n"
     "                 // C.1\n"
     "                 // C.2\n"},
    // Check that comments with too large starting column difference are not
    // aligned as continuation comments.
    // Check that starting comments are not linked with a comment in
    // comment-only line above them, even when the starting column is the same.
    // All comments in this test case are aligned independently, i.e. none are
    // "continuation comments".
    {"                // comment1\n"  // A's column, but is above it
     "module foo ();  // A\n"
     "                  // comment2\n"  // A's column + 2
     "              // comment3\n"      // A's column - 2
     "wire baz;     // B\n"
     "            // comment4\n"      // B's column - 2
     "                // comment5\n"  // B's column + 2
     "              // comment6\n"    // B's column, but not directly under B
     "endmodule:foo // C\n"
     "                // comment7\n"  // C's column + 2
     "              // comment8\n",   // C's column, but not directly under B
     "// comment1\n"
     "module foo ();  // A\n"
     "  // comment2\n"
     "  // comment3\n"
     "  wire baz;  // B\n"
     "  // comment4\n"
     "  // comment5\n"
     "  // comment6\n"
     "endmodule : foo  // C\n"
     "// comment7\n"
     "// comment8\n"},
    // Continuation comment alignment when a line with the starting comment is
    // wrapped.
    {"module foo(output logic very_very_very_very_long_name // A\n"
     "                                                      // A.1\n"
     "); endmodule\n",
     "module foo (\n"
     "    output logic\n"
     "        very_very_very_very_long_name  // A\n"
     "                                       // A.1\n"
     ");\n"
     "endmodule\n"},

    // Attachment of ',' to elements in enum list (with and without comments)
    {"typedef enum {\n"
     "  first , // c1\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first,  // c1\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first ,\n"
     "  // c1\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first,\n"
     "  // c1\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first // c1\n"
     "  , second\n"
     "} e;\n",
     "typedef enum {\n"
     "    first   // c1\n"
     "  , second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first\n"
     "  // c1\n"
     "  , second\n"
     "} e;\n",
     "typedef enum {\n"
     "    first\n"
     "  // c1\n"
     "  , second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first // c1\n"
     "  , // c2\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first   // c1\n"
     "  ,  // c2\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first\n"
     "  // c1\n"
     "  ,\n"
     "  // c2\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first\n"
     "  // c1\n"
     "  ,  // c2\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first\n"
     "  // c1\n"
     "  , // c2\n"
     "  // c3\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first\n"
     "  // c1\n"
     "  ,  // c2\n"
     "  // c3\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  // c1\n"
     "  first\n"
     "  // c2\n"
     "  , // c3\n"
     "  // c4\n"
     "  second\n"
     "  // c5\n"
     "} e;\n",
     "typedef enum {\n"
     "  // c1\n"
     "  first\n"
     "  // c2\n"
     "  ,  // c3\n"
     "  // c4\n"
     "  second\n"
     "  // c5\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  // c1\n"
     "  // c1+\n"
     "  first // c2\n"
     "        // c2+\n"
     "  , // c3\n"
     "    // c3+\n"
     "  // c4\n"
     "  // c4+\n"
     "  second // c5\n"
     "         // c5+\n"
     "} e;\n",
     "typedef enum {\n"
     "  // c1\n"
     "  // c1+\n"
     "  first   // c2\n"
     "          // c2+\n"
     "  ,  // c3\n"
     "     // c3+\n"
     "  // c4\n"
     "  // c4+\n"
     "  second  // c5\n"
     "          // c5+\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first , /* c1 */\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first,  /* c1 */\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first ,\n"
     "  /* c1 */\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first,\n"
     "  /* c1 */\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first /* c1 */\n"
     "  , second\n"
     "} e;\n",
     "typedef enum {\n"
     "    first   /* c1 */\n"
     "  , second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first\n"
     "  /* c1 */\n"
     "  , second\n"
     "} e;\n",
     "typedef enum {\n"
     "    first\n"
     "  /* c1 */\n"
     "  , second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first /* c1 */\n"
     "  , /* c2 */\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first   /* c1 */\n"
     "  ,  /* c2 */\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  first\n"
     "  /* c1 */\n"
     "  ,\n"
     "  /* c2 */\n"
     "  second\n"
     "} e;\n",
     "typedef enum {\n"
     "  first\n"
     "  /* c1 */\n"
     "  ,\n"
     "  /* c2 */\n"
     "  second\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  /* c1 */\n"
     "  first\n"
     "  /* c2 */\n"
     "  , /* c3 */\n"
     "  /* c4 */\n"
     "  second\n"
     "  /* c5 */\n"
     "} e;\n",
     "typedef enum {\n"
     "  /* c1 */\n"
     "  first\n"
     "  /* c2 */\n"
     "  ,  /* c3 */\n"
     "  /* c4 */\n"
     "  second\n"
     "  /* c5 */\n"
     "} e;\n"},
    {"typedef enum {\n"
     "  /* c1  */\n"
     "  /* c1+ */\n"
     "  first /* c2  */\n"
     "        /* c2+ */\n"
     "  , /* c3  */\n"
     "    /* c3+ */\n"
     "  /* c4  */\n"
     "  /* c4+ */\n"
     "  second /* c5  */\n"
     "         /* c5+ */\n"
     "} e;\n",
     "typedef enum {\n"
     "  /* c1  */\n"
     "  /* c1+ */\n"
     "  first   /* c2  */\n"
     "  /* c2+ */\n"
     "  ,  /* c3  */\n"
     "  /* c3+ */\n"
     "  /* c4  */\n"
     "  /* c4+ */\n"
     "  second  /* c5  */\n"
     "  /* c5+ */\n"
     "} e;\n"},
    {"module m;\n"
     "typedef enum {\n"
     "  first,\n"
     "  second\n"
     "} // c\n"
     "e;\n"
     "endmodule\n",
     "module m;\n"
     "  typedef enum {\n"
     "    first,\n"
     "    second\n"
     "  }  // c\n"
     "  e;\n"
     "endmodule\n"},
    // Attachment of ';' preceded by EOL comment
    {"module m;\n"
     "typedef enum {\n"
     "  first,\n"
     "  second\n"
     "} e // c\n"
     ";\n"
     "endmodule\n",
     "module m;\n"
     "  typedef enum {\n"
     "    first,\n"
     "    second\n"
     "  } e  // c\n"
     "  ;\n"
     "endmodule\n"},
    {"module m;\n"
     "typedef enum {\n"
     "  first,\n"
     "  second\n"
     "} // c1\n"
     "e // c2\n"
     ";\n"
     "endmodule\n",
     "module m;\n"
     "  typedef enum {\n"
     "    first,\n"
     "    second\n"
     "  }  // c1\n"
     "  e  // c2\n"
     "  ;\n"
     "endmodule\n"},
    {"assign foo = bar\n"
     "// comment\n"
     ";\n",
     "assign foo = bar\n"
     "    // comment\n"
     "    ;\n"},
    {"assign foo = bar // comment\n"
     ";\n",
     "assign foo = bar  // comment\n"
     ";\n"},

    // Attachment of ',' to elements in PortActualList (with and without
    // comments)
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1) // c1\n"
     "    ,\n"
     "    .second(2) // c2\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)  // c1\n"
     "      , .second(2)  // c2\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1) // c1\n"
     "    , .second(2) // c2\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)  // c1\n"
     "      , .second(2)  // c2\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    ,\n"
     "    .second(2)\n"
     "    // c2\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)\n"
     "      // c1\n"
     "      , .second(2)\n"
     "      // c2\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    , .second(2)\n"
     "    // c2\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)\n"
     "      // c1\n"
     "      , .second(2)\n"
     "      // c2\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    , // c2\n"
     "    .second(2)\n"
     "    // c3\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      .first (1)\n"
     "      // c1\n"
     "      ,  // c2\n"
     "      .second(2)\n"
     "      // c3\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    // c1\n"
     "    // c1+\n"
     "    .first(1) // c2\n"
     "              // c2+\n"
     "    , // c3\n"
     "      // c3+\n"
     "    .second(2) // c4\n"
     "               // c4+\n"
     "    // c5\n"
     "    // c5+\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      // c1\n"
     "      // c1+\n"
     "      .first (1)  // c2\n"
     "                  // c2+\n"
     "      ,  // c3\n"
     "         // c3+\n"
     "      .second(2)  // c4\n"
     "                  // c4+\n"
     "      // c5\n"
     "      // c5+\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1) /* c1 */\n"
     "    ,\n"
     "    .second(2) /* c2 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)  /* c1 */\n"
     "      , .second(2)  /* c2 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    /* c1 */ .first(1),\n"
     "    /* c2 */ .second(2)\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      /* c1 */.first (1),\n"
     "      /* c2 */.second(2)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1) /* c1 */\n"
     "    , .second(2) /* c2 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)  /* c1 */\n"
     "      , .second(2)  /* c2 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    /* c1 */.first(1)\n"
     "    /* c2 */, .second(2)\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      /* c1 */  .first (1)\n"
     "      /* c2 */, .second(2)\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    ,\n"
     "    .second(2)\n"
     "    /* c2 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)\n"
     "      /* c1 */\n"
     "      , .second(2)\n"
     "      /* c2 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , .second(2)\n"
     "    /* c2 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "        .first (1)\n"
     "      /* c1 */\n"
     "      , .second(2)\n"
     "      /* c2 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , /* c2 */\n"
     "    .second(2)\n"
     "    /* c3 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      .first (1)\n"
     "      /* c1 */\n"
     "      ,  /* c2 */\n"
     "      .second(2)\n"
     "      /* c3 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , /* c2 */\n"
     "    .second(2)\n"
     "    /* c3 */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      .first (1)\n"
     "      /* c1 */\n"
     "      ,  /* c2 */\n"
     "      .second(2)\n"
     "      /* c3 */\n"
     "  );\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar foobar(\n"
     "    /* c1  */\n"
     "    /* c1+ */\n"
     "    .first(1) /* c2  */\n"
     "              /* c2+ */\n"
     "    , /* c3  */\n"
     "      /* c3+ */\n"
     "    .second(2) /* c4  */\n"
     "               /* c4+ */\n"
     "    /* c5  */\n"
     "    /* c5+ */\n"
     "  );\n"
     "endmodule\n",
     "module foo;\n"
     "  bar foobar (\n"
     "      /* c1  */\n"
     "      /* c1+ */\n"
     "      .first (1)  /* c2  */\n"
     "      /* c2+ */\n"
     "      ,  /* c3  */\n"
     "      /* c3+ */\n"
     "      .second(2)  /* c4  */\n"
     "      /* c4+ */\n"
     "      /* c5  */\n"
     "      /* c5+ */\n"
     "  );\n"
     "endmodule\n"},

    // Attachment of ',' to elements in ActualNamedParameterList (with and
    // without comments)
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1) // c1\n"
     "    ,\n"
     "    .second(2) // c2\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)  // c1\n"
     "      , .second(2)  // c2\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1) // c1\n"
     "    , .second(2) // c2\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)  // c1\n"
     "      , .second(2)  // c2\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    ,\n"
     "    .second(2)\n"
     "    // c2\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)\n"
     "      // c1\n"
     "      , .second(2)\n"
     "      // c2\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    , .second(2)\n"
     "    // c2\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)\n"
     "      // c1\n"
     "      , .second(2)\n"
     "      // c2\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    // c1\n"
     "    , // c2\n"
     "    .second(2)\n"
     "    // c3\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      .first (1)\n"
     "      // c1\n"
     "      ,  // c2\n"
     "      .second(2)\n"
     "      // c3\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    // c1\n"
     "    // c1+\n"
     "    .first(1) // c2\n"
     "              // c2+\n"
     "    , // c3\n"
     "      // c3+\n"
     "    .second(2) // c4\n"
     "               // c4+\n"
     "    // c5\n"
     "    // c5+\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      // c1\n"
     "      // c1+\n"
     "      .first (1)  // c2\n"
     "                  // c2+\n"
     "      ,  // c3\n"
     "         // c3+\n"
     "      .second(2)  // c4\n"
     "                  // c4+\n"
     "      // c5\n"
     "      // c5+\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1) /* c1 */\n"
     "    ,\n"
     "    .second(2) /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)  /* c1 */\n"
     "      , .second(2)  /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    /* c1 */ .first(1),\n"
     "    /* c2 */ .second(2)\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      /* c1 */.first (1),\n"
     "      /* c2 */.second(2)\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1) /* c1 */\n"
     "    , .second(2) /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)  /* c1 */\n"
     "      , .second(2)  /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    /* c1 */.first(1)\n"
     "    /* c2 */, .second(2)\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      /* c1 */  .first (1)\n"
     "      /* c2 */, .second(2)\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    ,\n"
     "    .second(2)\n"
     "    /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)\n"
     "      /* c1 */\n"
     "      , .second(2)\n"
     "      /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , .second(2)\n"
     "    /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "        .first (1)\n"
     "      /* c1 */\n"
     "      , .second(2)\n"
     "      /* c2 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , /* c2 */\n"
     "    .second(2)\n"
     "    /* c3 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      .first (1)\n"
     "      /* c1 */\n"
     "      ,  /* c2 */\n"
     "      .second(2)\n"
     "      /* c3 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    .first(1)\n"
     "    /* c1 */\n"
     "    , /* c2 */\n"
     "    .second(2)\n"
     "    /* c3 */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      .first (1)\n"
     "      /* c1 */\n"
     "      ,  /* c2 */\n"
     "      .second(2)\n"
     "      /* c3 */\n"
     "  ) baz ();\n"
     "endmodule\n"},
    {"module foo;\n"
     "  bar#(\n"
     "    /* c1  */\n"
     "    /* c1+ */\n"
     "    .first(1) /* c2  */\n"
     "              /* c2+ */\n"
     "    , /* c3  */\n"
     "      /* c3+ */\n"
     "    .second(2) /* c4  */\n"
     "               /* c4+ */\n"
     "    /* c5  */\n"
     "    /* c5+ */\n"
     "  ) baz ();\n"
     "endmodule\n",
     "module foo;\n"
     "  bar #(\n"
     "      /* c1  */\n"
     "      /* c1+ */\n"
     "      .first (1)  /* c2  */\n"
     "      /* c2+ */\n"
     "      ,  /* c3  */\n"
     "      /* c3+ */\n"
     "      .second(2)  /* c4  */\n"
     "      /* c4+ */\n"
     "      /* c5  */\n"
     "      /* c5+ */\n"
     "  ) baz ();\n"
     "endmodule\n"},

    // ":" and "'{" in a single line
    {"assign foo[2] =\n"
     "'{\n"
     "bar: 1'b1,  // c\n"
     "baz: 1'b0,  // c\n"
     "foobar: CONSTANT,\n"
     "qux:\n"
     "{\n"
     "a,  // c\n"
     "b\n"
     "}\n"
     "};\n",
     "assign foo[2] = '{\n"
     "        bar: 1'b1,  // c\n"
     "        baz: 1'b0,  // c\n"
     "        foobar: CONSTANT,\n"
     "        qux: {\n"
     "          a,  // c\n"
     "          b\n"
     "        }\n"
     "    };\n"},
    {"assign a = (b) ? '{c: d[e], f: '1} : g;\n",
     "assign a = (b) ?\n"
     "    '{c: d[e], f: '1}\n"
     "    : g;\n"},

    // -----------------------------------------------------------------
    // Comments around `else`.
    // Check whether `else` partition is found correctly and that actual code is
    // not appended to EOL comments.

    // generate if

    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else if (r) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  else if (r) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else // eol-c\n"
     "if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else  // eol-c\n"
     "  if (r) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else\n"
     "// eol-c\n"
     "if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else\n"
     "  // eol-c\n"
     "  if (r)\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  if (r) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if (r)\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if (r)\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "(r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if\n"
     "      // eol-c\n"
     "      (r)\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "// eol-c\n"
     "(r) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  if\n"
     "      // eol-c\n"
     "      // eol-c\n"
     "      (r)\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},

    // generate if with function call

    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else if (foo(x) == bar(1, 2))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  else if (foo(x) == bar(1, 2))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else // eol-c\n"
     "if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else  // eol-c\n"
     "  if (foo(x) == bar(1, 2)) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else\n"
     "// eol-c\n"
     "if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else\n"
     "  // eol-c\n"
     "  if (foo(\n"
     "          x\n"
     "      ) == bar(\n"
     "          1, 2\n"
     "      ))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  if (foo(x) == bar(1, 2)) assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if (foo(\n"
     "          x\n"
     "      ) == bar(\n"
     "          1, 2\n"
     "      ))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if (foo(\n"
     "          x\n"
     "      ) == bar(\n"
     "          1, 2\n"
     "      ))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "(foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  if\n"
     "      // eol-c\n"
     "      (foo(\n"
     "          x\n"
     "      ) == bar(\n"
     "          1, 2\n"
     "      ))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},
    {"module zx;\n"
     "if (x) assign z=y;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "// eol-c\n"
     "(foo(x) == bar(1, 2)) assign z=w;\n"
     "else assign x=y;\n"
     "endmodule\n",
     "module zx;\n"
     "  if (x) assign z = y;\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  else  // eol-c\n"
     "  // eol-c\n"
     "  // eol-c\n"
     "  if\n"
     "      // eol-c\n"
     "      // eol-c\n"
     "      (foo(\n"
     "          x\n"
     "      ) == bar(\n"
     "          1, 2\n"
     "      ))\n"
     "    assign z = w;\n"
     "  else assign x = y;\n"
     "endmodule\n"},

    // else begin

    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "// eol-c\n"
     "else begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    // eol-c\n"
     "    else begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},
    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    else begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},
    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "else // eol-c\n"
     "begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    else  // eol-c\n"
     "    begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},
    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "else\n"
     "// eol-c\n"
     "begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    else\n"
     "    // eol-c\n"
     "    begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},
    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},
    {"module zx;\n"
     "always begin\n"
     "if (a) b<=1;\n"
     "else // eol-c\n"
     "// eol-c\n"
     "begin b<=2;\n"
     "end\n"
     "end\n"
     "endmodule\n",
     "module zx;\n"
     "  always begin\n"
     "    if (a) b <= 1;\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    begin\n"
     "      b <= 2;\n"
     "    end\n"
     "  end\n"
     "endmodule\n"},

    // else if

    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else if (set) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    else if (set) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else // eol-c\n"
     "if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else  // eol-c\n"
     "    if (set) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else\n"
     "// eol-c\n"
     "if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else\n"
     "    // eol-c\n"
     "    if (set)\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    if (set) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if (set)\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if (set)\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "(set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if\n"
     "        // eol-c\n"
     "        (set)\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "// eol-c\n"
     "(set) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    if\n"
     "        // eol-c\n"
     "        // eol-c\n"
     "        (set)\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},

    // else if with function call

    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else if (foo(clr, set, 1))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    else if (foo(clr, set, 1))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else // eol-c\n"
     "if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else  // eol-c\n"
     "    if (foo(clr, set, 1)) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else\n"
     "// eol-c\n"
     "if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else\n"
     "    // eol-c\n"
     "    if (foo(\n"
     "            clr, set, 1\n"
     "        ))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    if (foo(clr, set, 1)) assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if (foo(\n"
     "            clr, set, 1\n"
     "        ))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if (foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if (foo(\n"
     "            clr, set, 1\n"
     "        ))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "(foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    if\n"
     "        // eol-c\n"
     "        (foo(\n"
     "            clr, set, 1\n"
     "        ))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},
    {"module zx;\n"
     "always @(clr or set)\n"
     "if (clr) assign q=0;\n"
     "// eol-c\n"
     "// eol-c\n"
     "else // eol-c\n"
     "// eol-c\n"
     "// eol-c\n"
     "if\n"
     "// eol-c\n"
     "// eol-c\n"
     "(foo(clr, set, 1)) assign q=1;\n"
     "else deassign q;\n"
     "endmodule\n",
     "module zx;\n"
     "  always @(clr or set)\n"
     "    if (clr) assign q = 0;\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    else  // eol-c\n"
     "    // eol-c\n"
     "    // eol-c\n"
     "    if\n"
     "        // eol-c\n"
     "        // eol-c\n"
     "        (foo(\n"
     "            clr, set, 1\n"
     "        ))\n"
     "      assign q = 1;\n"
     "    else deassign q;\n"
     "endmodule\n"},

    // -----------------------------------------------------------------
    // Comments around and inside macro calls.

    // between identifier and '(', no args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ /* c2 */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ /* c2 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ // c2\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  // c2\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ // c2\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  // c2\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c1\n"
     "// c2\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c1\n"
     "    // c2\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "/* c2 */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */ ();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "/* c2 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "// c2\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    // c2\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "// c2\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    ();\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "// c2\n"
     "// c3\n"
     "();\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    ();\n"},

    // between identifier and '(', with arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ /* c2 */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ /* c2 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */ // c2\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  // c2\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ // c2\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  // c2\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c1\n"
     "// c2\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c1\n"
     "    // c2\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "/* c2 */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */ (arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "/* c2 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "// c2\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    // c2\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "// c2\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    (arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz // c1\n"
     "// c2\n"
     "// c3\n"
     "(arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    (arg);\n"},

    // after '(', no args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    // c1\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c1\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     ");\n"},

    // after '(', with arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ /* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ /* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */ // c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */  // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ /* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */  /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ /* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */  /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "// c\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    // c\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */ // c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */  // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "// c1\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(\n"
     "    // c1\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "/* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(// c1\n"
     "// c2\n"
     "// c3\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ // c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ // c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c1\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c1\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    arg);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "// c3\n"
     "arg);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    arg);\n"},

    // after single arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg\n"
     "           // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */\n"
     "           /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  // c1\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg  // c1\n"
     "           // c2\n"
     "           // c3\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg\n"
     "           // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */\n"
     "           /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  // c1\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg  // c1\n"
     "           // c2\n"
     "           // c3\n"
     ");\n"},

    // before colon

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */ /* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */  /* c2 */,\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */ /* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */  /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1// c\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  // c\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */ // c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */  // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c1 */ /* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c1 */  /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c1 */ /* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c1 */  /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "// c\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           // c\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c1 */ // c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c1 */  // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "// c1\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1\n"
     "           // c1\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */\n"
     "/* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */\n"
     "           /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1// c1\n"
     "/* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  // c1\n"
     "           /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1// c1\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  // c1\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1// c1\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  // c1\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1// c1\n"
     "// c2\n"
     "// c3\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1  // c1\n"
     "           // c2\n"
     "           // c3\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */ /* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */  /* c2 */,\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */ /* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */  /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1// c\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  // c\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */ // c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */  // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c1 */ /* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c1 */  /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c1 */ /* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c1 */  /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "// c\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           // c\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c1 */ // c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c1 */  // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "// c1\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1\n"
     "           // c1\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */\n"
     "/* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */\n"
     "           /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1// c1\n"
     "/* c2 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  // c1\n"
     "           /* c2 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */, arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */, arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1// c1\n"
     "/* c2 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  // c1\n"
     "           /* c2 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1// c1\n"
     "// c2\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  // c1\n"
     "           // c2\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     "           , arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1// c1\n"
     "// c2\n"
     "// c3\n"
     ", arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1  // c1\n"
     "           // c2\n"
     "           // c3\n"
     "           , arg2);\n"},

    // after colon

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */ /* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */ /* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,// c\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  // c\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */ // c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */  // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c1 */ /* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c1 */  /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c1 */ /* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "// c\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           // c\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c1 */ // c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c1 */  // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "// c1\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           // c1\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */\n"
     "/* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */\n"
     "           /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,// c1\n"
     "/* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  // c1\n"
     "           /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,// c1\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  // c1\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,// c1\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  // c1\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,// c1\n"
     "// c2\n"
     "// c3\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,  // c1\n"
     "           // c2\n"
     "           // c3\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */ /* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */ /* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,// c\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  // c\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */ // c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */  // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c1 */ /* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c1 */  /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c1 */ /* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c1 */  /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "// c\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           // c\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c1 */ // c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c1 */  // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "// c1\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           // c1\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */\n"
     "/* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */\n"
     "           /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,// c1\n"
     "/* c2 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  // c1\n"
     "           /* c2 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */ arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,// c1\n"
     "/* c2 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  // c1\n"
     "           /* c2 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,// c1\n"
     "// c2\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  // c1\n"
     "           // c2\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     "           arg2);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,// c1\n"
     "// c2\n"
     "// c3\n"
     "arg2);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,  // c1\n"
     "           // c2\n"
     "           // c3\n"
     "           arg2);\n"},

    // after last arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           arg2,  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1,\n"
     "           arg2,  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,\n"
     "           // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  // c1\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg1, arg2,  // c1\n"
     "           // c2\n"
     "           // c3\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           arg2,  /* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1,\n"
     "           arg2,  /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c1 */ /* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c1 */  /* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           /* c */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c1 */ /* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           /* c1 */  /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "// c\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           // c\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c1 */ // c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           /* c1 */  // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,\n"
     "           // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,// c1\n"
     "/* c2 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  // c1\n"
     "/* c2 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */);\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     "/* c3 */);\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,// c1\n"
     "/* c2 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  // c1\n"
     "           /* c2 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,// c1\n"
     "// c2\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  // c1\n"
     "           // c2\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  /* c1 */\n"
     "           /* c2 */\n"
     "           /* c3 */\n"
     ");\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,// c1\n"
     "// c2\n"
     "// c3\n"
     ");\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg1, arg2,  // c1\n"
     "           // c2\n"
     "           // c3\n"
     ");\n"},

    // after ')', no args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  // c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "// c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()\n"
     "// c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()// c1\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  // c1\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()// c1\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  // c1\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  // c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()// c1\n"
     "// c2\n"
     "// c3\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz()  // c1\n"
     "// c2\n"
     "// c3\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  // c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "// c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()\n"
     "// c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()// c1\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  // c1\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()// c1\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  // c1\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  // c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()// c1\n"
     "// c2\n"
     "// c3\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ()  // c1\n"
     "// c2\n"
     "// c3\n"
     ";\n"},

    // after ')', with arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)\n"
     "// c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)// c1\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c1\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)// c1\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c1\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)// c1\n"
     "// c2\n"
     "// c3\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg)  // c1\n"
     "// c2\n"
     "// c3\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  // c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */ /* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */  /* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */ /* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */  /* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "// c\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "// c\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */ // c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */  // c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)\n"
     "// c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)// c1\n"
     "/* c2 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  // c1\n"
     "/* c2 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)// c1\n"
     "/* c2 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  // c1\n"
     "/* c2 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)// c1\n"
     "// c2\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  // c1\n"
     "// c2\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)// c1\n"
     "// c2\n"
     "// c3\n"
     ";\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg)  // c1\n"
     "// c2\n"
     "// c3\n"
     ";\n"},

    // after ';', no args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();// c1 c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  // c1 c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  // c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz();  // c1\n"
     "// c2\n"
     "// c3\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  // c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ();  // c1\n"
     "// c2\n"
     "// c3\n"},

    // after ';', with arg

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);// c1 c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  // c1 c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  // c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz(arg);  // c1\n"
     "// c2\n"
     "// c3\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  // c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(arg);  // c1\n"
     "// c2\n"
     "// c3\n"},

    // everywhere, no args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c */(/* c */)/* c */;/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */\n"
     "    (  /* c */)  /* c */;  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ /* c2 */(/* c1 */ /* c2 */)/* c1 */ /* c2 */;/* c1 */ "
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */\n"
     "    (  /* c1 */  /* c2 */)  /* c1 */  /* c2 */;  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c */\n"
     "(/* c */\n"
     ")/* c */\n"
     ";/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */\n"
     "    (  /* c */\n"
     "    )  /* c */\n"
     ";  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ /* c2 */\n"
     "(/* c1 */ /* c2 */\n"
     ")/* c1 */ /* c2 */\n"
     ";/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */\n"
     "    (  /* c1 */  /* c2 */\n"
     "    )  /* c1 */  /* c2 */\n"
     ";  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c\n"
     "(// c\n"
     ")// c\n"
     ";// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c\n"
     "    (  // c\n"
     "    )  // c\n"
     ";  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ // c2\n"
     "(/* c1 */ // c2\n"
     ")/* c1 */ // c2\n"
     ";/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  // c2\n"
     "    (  /* c1 */  // c2\n"
     "    )  /* c1 */  // c2\n"
     ";  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */(\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */ (\n"
     "    /* c */)\n"
     "/* c */;\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */(\n"
     "/* c1 */ /* c2 */)\n"
     "/* c1 */ /* c2 */;\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */ (\n"
     "    /* c1 */  /* c2 */)\n"
     "/* c1 */  /* c2 */;\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */\n"
     "(\n"
     "/* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */\n"
     "    (\n"
     "        /* c */\n"
     "    )\n"
     "/* c */\n"
     ";\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */\n"
     "(\n"
     "/* c1 */ /* c2 */\n"
     ")\n"
     "/* c1 */ /* c2 */\n"
     ";\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */\n"
     "    (\n"
     "        /* c1 */  /* c2 */\n"
     "    )\n"
     "/* c1 */  /* c2 */\n"
     ";\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c\n"
     "(\n"
     "// c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c\n"
     "    (\n"
     "        // c\n"
     "    )\n"
     "// c\n"
     ";\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ // c2\n"
     "(\n"
     "/* c1 */ // c2\n"
     ")\n"
     "/* c1 */ // c2\n"
     ";\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  // c2\n"
     "    (\n"
     "        /* c1 */  // c2\n"
     "    )\n"
     "/* c1 */  // c2\n"
     ";\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    (\n"
     "        /* c1 */\n"
     "        /* c2 */\n"
     "    )\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c1\n"
     "// c2\n"
     "(\n"
     "// c1\n"
     "// c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c1\n"
     "    // c2\n"
     "    (\n"
     "        // c1\n"
     "        // c2\n"
     "    )\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */(/* c1 */\n"
     "/* c2 */)/* c1 */\n"
     "/* c2 */;/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */ (  /* c1 */\n"
     "    /* c2 */)  /* c1 */\n"
     "/* c2 */;  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "/* c2 */(// c1\n"
     "/* c2 */)// c1\n"
     "/* c2 */;// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */ (  // c1\n"
     "    /* c2 */)  // c1\n"
     "/* c2 */;  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ (  /* c1 */\n"
     "        /* c2 */\n"
     "    /* c3 */)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "(/* c1 */\n"
     "/* c2 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     ";/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    (  /* c1 */\n"
     "        /* c2 */\n"
     "    )  /* c1 */\n"
     "/* c2 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "/* c2 */\n"
     "(// c1\n"
     "/* c2 */\n"
     ")// c1\n"
     "/* c2 */\n"
     ";// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */\n"
     "    (  // c1\n"
     "        /* c2 */\n"
     "    )  // c1\n"
     "/* c2 */\n"
     ";  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "// c2\n"
     "(/* c1 */\n"
     "// c2\n"
     ")/* c1 */\n"
     "// c2\n"
     ";/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    // c2\n"
     "    (  /* c1 */\n"
     "        // c2\n"
     "    )  /* c1 */\n"
     "// c2\n"
     ";  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "// c2\n"
     "(// c1\n"
     "// c2\n"
     ")// c1\n"
     "// c2\n"
     ";// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    (  // c1\n"
     "       // c2\n"
     "    )  // c1\n"
     "       // c2\n"
     ";  // c1\n"
     "   // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    (  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */\n"
     "    )  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "// c2\n"
     "// c3\n"
     "(// c1\n"
     "// c2\n"
     "// c3\n"
     ")// c1\n"
     "// c2\n"
     "// c3\n"
     ";// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    (  // c1\n"
     "       // c2\n"
     "       // c3\n"
     "    )  // c1\n"
     "       // c2\n"
     "       // c3\n"
     ";  // c1\n"
     "   // c2\n"
     "   // c3\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */)/* c */;/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */)  /* c */;  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */)/* c1 */ /* c2 */;/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */)  /* c1 */  /* c2 */;  /* c1 */  /* c2 "
     "*/\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */\n"
     ")/* c */\n"
     ";/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */\n"
     ")  /* c */\n"
     ";  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */\n"
     ")/* c1 */ /* c2 */\n"
     ";/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */\n"
     ")  /* c1 */  /* c2 */\n"
     ";  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c\n"
     ")// c\n"
     ";// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c\n"
     ")  // c\n"
     ";  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ // c2\n"
     ")/* c1 */ // c2\n"
     ";/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  // c2\n"
     ")  /* c1 */  // c2\n"
     ";  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */)\n"
     "/* c1 */ /* c2 */;\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */  /* c2 */)\n"
     "/* c1 */  /* c2 */;\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */\n"
     ")\n"
     "/* c1 */ /* c2 */\n"
     ";\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */\n"
     ")\n"
     "/* c1 */  /* c2 */\n"
     ";\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ // c2\n"
     ")\n"
     "/* c1 */ // c2\n"
     ";\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  // c2\n"
     ")\n"
     "/* c1 */  // c2\n"
     ";\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c1\n"
     "// c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c1\n"
     "    // c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */)/* c1 */\n"
     "/* c2 */;/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "/* c2 */)  /* c1 */\n"
     "/* c2 */;  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */)// c1\n"
     "/* c2 */;// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "/* c2 */)  // c1\n"
     "/* c2 */;  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "/* c3 */)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     ";/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     ")  /* c1 */\n"
     "/* c2 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */\n"
     ")// c1\n"
     "/* c2 */\n"
     ";// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */\n"
     ")  // c1\n"
     "/* c2 */\n"
     ";  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "// c2\n"
     ")/* c1 */\n"
     "// c2\n"
     ";/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    // c2\n"
     ")  /* c1 */\n"
     "// c2\n"
     ";  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     ")// c1\n"
     "// c2\n"
     ";// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     ")  // c1\n"
     "   // c2\n"
     ";  // c1\n"
     "   // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     ")  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "// c3\n"
     ")// c1\n"
     "// c2\n"
     "// c3\n"
     ";// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     ")  // c1\n"
     "   // c2\n"
     "   // c3\n"
     ";  // c1\n"
     "   // c2\n"
     "   // c3\n"},

    // everywhere, with args

    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c */(/* c */arg1/* c */,/* c */arg2/* c */)/* c */;/* c "
     "*/\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */ (  /* c */\n"
     "    arg1  /* c */,  /* c */\n"
     "    arg2  /* c */)  /* c */;  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ /* c2 */(/* c1 */ /* c2 */arg1/* c1 */ /* c2 */,/* c1 "
     "*/ /* c2 */arg2/* c1 */ /* c2 */)/* c1 */ /* c2 */;/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */ (  /* c1 */  /* c2 */\n"
     "    arg1  /* c1 */  /* c2 */,  /* c1 */  /* c2 */\n"
     "    arg2  /* c1 */  /* c2 */)  /* c1 */  /* c2 */;  /* c1 */  /* c2 "
     "*/\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c */\n"
     "(/* c */\n"
     "arg1/* c */\n"
     ",/* c */\n"
     "arg2/* c */\n"
     ")/* c */\n"
     ";/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c */\n"
     "    (  /* c */\n"
     "        arg1  /* c */\n"
     "        ,  /* c */\n"
     "        arg2  /* c */\n"
     "    )  /* c */\n"
     ";  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ /* c2 */\n"
     "(/* c1 */ /* c2 */\n"
     "arg1/* c1 */ /* c2 */\n"
     ",/* c1 */ /* c2 */\n"
     "arg2/* c1 */ /* c2 */\n"
     ")/* c1 */ /* c2 */\n"
     ";/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  /* c2 */\n"
     "    (  /* c1 */  /* c2 */\n"
     "        arg1  /* c1 */  /* c2 */\n"
     "        ,  /* c1 */  /* c2 */\n"
     "        arg2  /* c1 */  /* c2 */\n"
     "    )  /* c1 */  /* c2 */\n"
     ";  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c\n"
     "(// c\n"
     "arg1// c\n"
     ",// c\n"
     "arg2// c\n"
     ")// c\n"
     ";// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c\n"
     "    (  // c\n"
     "        arg1  // c\n"
     "        ,  // c\n"
     "        arg2  // c\n"
     "    )  // c\n"
     ";  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */ // c2\n"
     "(/* c1 */ // c2\n"
     "arg1/* c1 */ // c2\n"
     ",/* c1 */ // c2\n"
     "arg2/* c1 */ // c2\n"
     ")/* c1 */ // c2\n"
     ";/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */  // c2\n"
     "    (  /* c1 */  // c2\n"
     "        arg1  /* c1 */  // c2\n"
     "        ,  /* c1 */  // c2\n"
     "        arg2  /* c1 */  // c2\n"
     "    )  /* c1 */  // c2\n"
     ";  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */(\n"
     "/* c */arg1\n"
     "/* c */,\n"
     "/* c */arg2\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */ (\n"
     "        /* c */ arg1\n"
     "        /* c */,\n"
     "        /* c */ arg2\n"
     "    /* c */)\n"
     "/* c */;\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */(\n"
     "/* c1 */ /* c2 */arg1\n"
     "/* c1 */ /* c2 */,\n"
     "/* c1 */ /* c2 */arg2\n"
     "/* c1 */ /* c2 */)\n"
     "/* c1 */ /* c2 */;\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */ (\n"
     "        /* c1 */  /* c2 */ arg1\n"
     "        /* c1 */  /* c2 */,\n"
     "        /* c1 */  /* c2 */ arg2\n"
     "    /* c1 */  /* c2 */)\n"
     "/* c1 */  /* c2 */;\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c */\n"
     "(\n"
     "/* c */\n"
     "arg1\n"
     "/* c */\n"
     ",\n"
     "/* c */\n"
     "arg2\n"
     "/* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c */\n"
     "    (\n"
     "        /* c */\n"
     "        arg1\n"
     "        /* c */\n"
     "        ,\n"
     "        /* c */\n"
     "        arg2\n"
     "        /* c */\n"
     "    )\n"
     "/* c */\n"
     ";\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ /* c2 */\n"
     "(\n"
     "/* c1 */ /* c2 */\n"
     "arg1\n"
     "/* c1 */ /* c2 */\n"
     ",\n"
     "/* c1 */ /* c2 */\n"
     "arg2\n"
     "/* c1 */ /* c2 */\n"
     ")\n"
     "/* c1 */ /* c2 */\n"
     ";\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  /* c2 */\n"
     "    (\n"
     "        /* c1 */  /* c2 */\n"
     "        arg1\n"
     "        /* c1 */  /* c2 */\n"
     "        ,\n"
     "        /* c1 */  /* c2 */\n"
     "        arg2\n"
     "        /* c1 */  /* c2 */\n"
     "    )\n"
     "/* c1 */  /* c2 */\n"
     ";\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c\n"
     "(\n"
     "// c\n"
     "arg1\n"
     "// c\n"
     ",\n"
     "// c\n"
     "arg2\n"
     "// c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c\n"
     "    (\n"
     "        // c\n"
     "        arg1\n"
     "        // c\n"
     "        ,\n"
     "        // c\n"
     "        arg2\n"
     "        // c\n"
     "    )\n"
     "// c\n"
     ";\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */ // c2\n"
     "(\n"
     "/* c1 */ // c2\n"
     "arg1\n"
     "/* c1 */ // c2\n"
     ",\n"
     "/* c1 */ // c2\n"
     "arg2\n"
     "/* c1 */ // c2\n"
     ")\n"
     "/* c1 */ // c2\n"
     ";\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */  // c2\n"
     "    (\n"
     "        /* c1 */  // c2\n"
     "        arg1\n"
     "        /* c1 */  // c2\n"
     "        ,\n"
     "        /* c1 */  // c2\n"
     "        arg2\n"
     "        /* c1 */  // c2\n"
     "    )\n"
     "/* c1 */  // c2\n"
     ";\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg1\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ",\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg2\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    (\n"
     "        /* c1 */\n"
     "        /* c2 */\n"
     "        arg1\n"
     "        /* c1 */\n"
     "        /* c2 */\n"
     "        ,\n"
     "        /* c1 */\n"
     "        /* c2 */\n"
     "        arg2\n"
     "        /* c1 */\n"
     "        /* c2 */\n"
     "    )\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "// c1\n"
     "// c2\n"
     "(\n"
     "// c1\n"
     "// c2\n"
     "arg1\n"
     "// c1\n"
     "// c2\n"
     ",\n"
     "// c1\n"
     "// c2\n"
     "arg2\n"
     "// c1\n"
     "// c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz\n"
     "    // c1\n"
     "    // c2\n"
     "    (\n"
     "        // c1\n"
     "        // c2\n"
     "        arg1\n"
     "        // c1\n"
     "        // c2\n"
     "        ,\n"
     "        // c1\n"
     "        // c2\n"
     "        arg2\n"
     "        // c1\n"
     "        // c2\n"
     "    )\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */(/* c1 */\n"
     "/* c2 */arg1/* c1 */\n"
     "/* c2 */,/* c1 */\n"
     "/* c2 */arg2/* c1 */\n"
     "/* c2 */)/* c1 */\n"
     "/* c2 */;/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */ (  /* c1 */\n"
     "        /* c2 */ arg1  /* c1 */\n"
     "        /* c2 */,  /* c1 */\n"
     "        /* c2 */ arg2  /* c1 */\n"
     "    /* c2 */)  /* c1 */\n"
     "/* c2 */;  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "/* c2 */(// c1\n"
     "/* c2 */arg1// c1\n"
     "/* c2 */,// c1\n"
     "/* c2 */arg2// c1\n"
     "/* c2 */)// c1\n"
     "/* c2 */;// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */ (  // c1\n"
     "        /* c2 */ arg1  // c1\n"
     "        /* c2 */,  // c1\n"
     "        /* c2 */ arg2  // c1\n"
     "    /* c2 */)  // c1\n"
     "/* c2 */;  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg2/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ (  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */ arg1  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */,  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */ arg2  /* c1 */\n"
     "        /* c2 */\n"
     "    /* c3 */)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "(/* c1 */\n"
     "/* c2 */\n"
     "arg1/* c1 */\n"
     "/* c2 */\n"
     ",/* c1 */\n"
     "/* c2 */\n"
     "arg2/* c1 */\n"
     "/* c2 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     ";/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    (  /* c1 */\n"
     "        /* c2 */\n"
     "        arg1  /* c1 */\n"
     "        /* c2 */\n"
     "        ,  /* c1 */\n"
     "        /* c2 */\n"
     "        arg2  /* c1 */\n"
     "        /* c2 */\n"
     "    )  /* c1 */\n"
     "/* c2 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "/* c2 */\n"
     "(// c1\n"
     "/* c2 */\n"
     "arg1// c1\n"
     "/* c2 */\n"
     ",// c1\n"
     "/* c2 */\n"
     "arg2// c1\n"
     "/* c2 */\n"
     ")// c1\n"
     "/* c2 */\n"
     ";// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    /* c2 */\n"
     "    (  // c1\n"
     "        /* c2 */\n"
     "        arg1  // c1\n"
     "        /* c2 */\n"
     "        ,  // c1\n"
     "        /* c2 */\n"
     "        arg2  // c1\n"
     "        /* c2 */\n"
     "    )  // c1\n"
     "/* c2 */\n"
     ";  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "// c2\n"
     "(/* c1 */\n"
     "// c2\n"
     "arg1/* c1 */\n"
     "// c2\n"
     ",/* c1 */\n"
     "// c2\n"
     "arg2/* c1 */\n"
     "// c2\n"
     ")/* c1 */\n"
     "// c2\n"
     ";/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    // c2\n"
     "    (  /* c1 */\n"
     "        // c2\n"
     "        arg1  /* c1 */\n"
     "        // c2\n"
     "        ,  /* c1 */\n"
     "        // c2\n"
     "        arg2  /* c1 */\n"
     "        // c2\n"
     "    )  /* c1 */\n"
     "// c2\n"
     ";  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "// c2\n"
     "(// c1\n"
     "// c2\n"
     "arg1// c1\n"
     "// c2\n"
     ",// c1\n"
     "// c2\n"
     "arg2// c1\n"
     "// c2\n"
     ")// c1\n"
     "// c2\n"
     ";// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    (  // c1\n"
     "       // c2\n"
     "        arg1  // c1\n"
     "        // c2\n"
     "        ,  // c1\n"
     "           // c2\n"
     "        arg2  // c1\n"
     "        // c2\n"
     "    )  // c1\n"
     "       // c2\n"
     ";  // c1\n"
     "   // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ",/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg2/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    (  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */\n"
     "        arg1  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */\n"
     "        ,  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */\n"
     "        arg2  /* c1 */\n"
     "        /* c2 */\n"
     "        /* c3 */\n"
     "    )  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz// c1\n"
     "// c2\n"
     "// c3\n"
     "(// c1\n"
     "// c2\n"
     "// c3\n"
     "arg1// c1\n"
     "// c2\n"
     "// c3\n"
     ",// c1\n"
     "// c2\n"
     "// c3\n"
     "arg2// c1\n"
     "// c2\n"
     "// c3\n"
     ")// c1\n"
     "// c2\n"
     "// c3\n"
     ";// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "$foobarbaz  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    (  // c1\n"
     "       // c2\n"
     "       // c3\n"
     "        arg1  // c1\n"
     "        // c2\n"
     "        // c3\n"
     "        ,  // c1\n"
     "           // c2\n"
     "           // c3\n"
     "        arg2  // c1\n"
     "        // c2\n"
     "        // c3\n"
     "    )  // c1\n"
     "       // c2\n"
     "       // c3\n"
     ";  // c1\n"
     "   // c2\n"
     "   // c3\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */arg1/* c */,/* c */arg2/* c */)/* c */;/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */\n"
     "    arg1  /* c */,  /* c */\n"
     "    arg2  /* c */)  /* c */;  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */arg1/* c1 */ /* c2 */,/* c1 */ /* c2 "
     "*/arg2/* c1 */ /* c2 */)/* c1 */ /* c2 */;/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */\n"
     "    arg1  /* c1 */  /* c2 */,  /* c1 */  /* c2 */\n"
     "    arg2  /* c1 */  /* c2 */)  /* c1 */  /* c2 */;  /* c1 */  /* c2 "
     "*/\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c */\n"
     "arg1/* c */\n"
     ",/* c */\n"
     "arg2/* c */\n"
     ")/* c */\n"
     ";/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c */\n"
     "    arg1  /* c */\n"
     "    ,  /* c */\n"
     "    arg2  /* c */\n"
     ")  /* c */\n"
     ";  /* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ /* c2 */\n"
     "arg1/* c1 */ /* c2 */\n"
     ",/* c1 */ /* c2 */\n"
     "arg2/* c1 */ /* c2 */\n"
     ")/* c1 */ /* c2 */\n"
     ";/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  /* c2 */\n"
     "    arg1  /* c1 */  /* c2 */\n"
     "    ,  /* c1 */  /* c2 */\n"
     "    arg2  /* c1 */  /* c2 */\n"
     ")  /* c1 */  /* c2 */\n"
     ";  /* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c\n"
     "arg1// c\n"
     ",// c\n"
     "arg2// c\n"
     ")// c\n"
     ";// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c\n"
     "    arg1  // c\n"
     "    ,  // c\n"
     "    arg2  // c\n"
     ")  // c\n"
     ";  // c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */ // c2\n"
     "arg1/* c1 */ // c2\n"
     ",/* c1 */ // c2\n"
     "arg2/* c1 */ // c2\n"
     ")/* c1 */ // c2\n"
     ";/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */  // c2\n"
     "    arg1  /* c1 */  // c2\n"
     "    ,  /* c1 */  // c2\n"
     "    arg2  /* c1 */  // c2\n"
     ")  /* c1 */  // c2\n"
     ";  /* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */arg1\n"
     "/* c */,\n"
     "/* c */arg2\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */ arg1\n"
     "    /* c */,\n"
     "    /* c */ arg2\n"
     "/* c */)\n"
     "/* c */;\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */arg1\n"
     "/* c1 */ /* c2 */,\n"
     "/* c1 */ /* c2 */arg2\n"
     "/* c1 */ /* c2 */)\n"
     "/* c1 */ /* c2 */;\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */ arg1\n"
     "    /* c1 */  /* c2 */,\n"
     "    /* c1 */  /* c2 */ arg2\n"
     "/* c1 */  /* c2 */)\n"
     "/* c1 */  /* c2 */;\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c */\n"
     "arg1\n"
     "/* c */\n"
     ",\n"
     "/* c */\n"
     "arg2\n"
     "/* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c */\n"
     "    arg1\n"
     "    /* c */\n"
     "    ,\n"
     "    /* c */\n"
     "    arg2\n"
     "    /* c */\n"
     ")\n"
     "/* c */\n"
     ";\n"
     "/* c */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ /* c2 */\n"
     "arg1\n"
     "/* c1 */ /* c2 */\n"
     ",\n"
     "/* c1 */ /* c2 */\n"
     "arg2\n"
     "/* c1 */ /* c2 */\n"
     ")\n"
     "/* c1 */ /* c2 */\n"
     ";\n"
     "/* c1 */ /* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  /* c2 */\n"
     "    arg1\n"
     "    /* c1 */  /* c2 */\n"
     "    ,\n"
     "    /* c1 */  /* c2 */\n"
     "    arg2\n"
     "    /* c1 */  /* c2 */\n"
     ")\n"
     "/* c1 */  /* c2 */\n"
     ";\n"
     "/* c1 */  /* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c\n"
     "arg1\n"
     "// c\n"
     ",\n"
     "// c\n"
     "arg2\n"
     "// c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c\n"
     "    arg1\n"
     "    // c\n"
     "    ,\n"
     "    // c\n"
     "    arg2\n"
     "    // c\n"
     ")\n"
     "// c\n"
     ";\n"
     "// c\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */ // c2\n"
     "arg1\n"
     "/* c1 */ // c2\n"
     ",\n"
     "/* c1 */ // c2\n"
     "arg2\n"
     "/* c1 */ // c2\n"
     ")\n"
     "/* c1 */ // c2\n"
     ";\n"
     "/* c1 */ // c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */  // c2\n"
     "    arg1\n"
     "    /* c1 */  // c2\n"
     "    ,\n"
     "    /* c1 */  // c2\n"
     "    arg2\n"
     "    /* c1 */  // c2\n"
     ")\n"
     "/* c1 */  // c2\n"
     ";\n"
     "/* c1 */  // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg1\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ",\n"
     "/* c1 */\n"
     "/* c2 */\n"
     "arg2\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    arg1\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    ,\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     "    arg2\n"
     "    /* c1 */\n"
     "    /* c2 */\n"
     ")\n"
     "/* c1 */\n"
     "/* c2 */\n"
     ";\n"
     "/* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "// c1\n"
     "// c2\n"
     "arg1\n"
     "// c1\n"
     "// c2\n"
     ",\n"
     "// c1\n"
     "// c2\n"
     "arg2\n"
     "// c1\n"
     "// c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(\n"
     "    // c1\n"
     "    // c2\n"
     "    arg1\n"
     "    // c1\n"
     "    // c2\n"
     "    ,\n"
     "    // c1\n"
     "    // c2\n"
     "    arg2\n"
     "    // c1\n"
     "    // c2\n"
     ")\n"
     "// c1\n"
     "// c2\n"
     ";\n"
     "// c1\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */arg1/* c1 */\n"
     "/* c2 */,/* c1 */\n"
     "/* c2 */arg2/* c1 */\n"
     "/* c2 */)/* c1 */\n"
     "/* c2 */;/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */ arg1  /* c1 */\n"
     "    /* c2 */,  /* c1 */\n"
     "    /* c2 */ arg2  /* c1 */\n"
     "/* c2 */)  /* c1 */\n"
     "/* c2 */;  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */arg1// c1\n"
     "/* c2 */,// c1\n"
     "/* c2 */arg2// c1\n"
     "/* c2 */)// c1\n"
     "/* c2 */;// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */ arg1  // c1\n"
     "    /* c2 */,  // c1\n"
     "    /* c2 */ arg2  // c1\n"
     "/* c2 */)  // c1\n"
     "/* c2 */;  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */,/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */arg2/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */)/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ arg1  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */,  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */ arg2  /* c1 */\n"
     "    /* c2 */\n"
     "/* c3 */)  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */;  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "arg1/* c1 */\n"
     "/* c2 */\n"
     ",/* c1 */\n"
     "/* c2 */\n"
     "arg2/* c1 */\n"
     "/* c2 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     ";/* c1 */\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    arg1  /* c1 */\n"
     "    /* c2 */\n"
     "    ,  /* c1 */\n"
     "    /* c2 */\n"
     "    arg2  /* c1 */\n"
     "    /* c2 */\n"
     ")  /* c1 */\n"
     "/* c2 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "/* c2 */\n"
     "arg1// c1\n"
     "/* c2 */\n"
     ",// c1\n"
     "/* c2 */\n"
     "arg2// c1\n"
     "/* c2 */\n"
     ")// c1\n"
     "/* c2 */\n"
     ";// c1\n"
     "/* c2 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    /* c2 */\n"
     "    arg1  // c1\n"
     "    /* c2 */\n"
     "    ,  // c1\n"
     "    /* c2 */\n"
     "    arg2  // c1\n"
     "    /* c2 */\n"
     ")  // c1\n"
     "/* c2 */\n"
     ";  // c1\n"
     "/* c2 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "// c2\n"
     "arg1/* c1 */\n"
     "// c2\n"
     ",/* c1 */\n"
     "// c2\n"
     "arg2/* c1 */\n"
     "// c2\n"
     ")/* c1 */\n"
     "// c2\n"
     ";/* c1 */\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    // c2\n"
     "    arg1  /* c1 */\n"
     "    // c2\n"
     "    ,  /* c1 */\n"
     "    // c2\n"
     "    arg2  /* c1 */\n"
     "    // c2\n"
     ")  /* c1 */\n"
     "// c2\n"
     ";  /* c1 */\n"
     "// c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "arg1// c1\n"
     "// c2\n"
     ",// c1\n"
     "// c2\n"
     "arg2// c1\n"
     "// c2\n"
     ")// c1\n"
     "// c2\n"
     ";// c1\n"
     "// c2\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    arg1  // c1\n"
     "    // c2\n"
     "    ,  // c1\n"
     "       // c2\n"
     "    arg2  // c1\n"
     "    // c2\n"
     ")  // c1\n"
     "   // c2\n"
     ";  // c1\n"
     "   // c2\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg1/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ",/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     "arg2/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ")/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";/* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    arg1  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    ,  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     "    arg2  /* c1 */\n"
     "    /* c2 */\n"
     "    /* c3 */\n"
     ")  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"
     ";  /* c1 */\n"
     "/* c2 */\n"
     "/* c3 */\n"},
    {"// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(// c1\n"
     "// c2\n"
     "// c3\n"
     "arg1// c1\n"
     "// c2\n"
     "// c3\n"
     ",// c1\n"
     "// c2\n"
     "// c3\n"
     "arg2// c1\n"
     "// c2\n"
     "// c3\n"
     ")// c1\n"
     "// c2\n"
     "// c3\n"
     ";// c1\n"
     "// c2\n"
     "// c3\n",
     "// verilog_syntax: parse-as-module-body\n"
     "`FOOBARBAZ(  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    arg1  // c1\n"
     "    // c2\n"
     "    // c3\n"
     "    ,  // c1\n"
     "       // c2\n"
     "       // c3\n"
     "    arg2  // c1\n"
     "    // c2\n"
     "    // c3\n"
     ")  // c1\n"
     "   // c2\n"
     "   // c3\n"
     ";  // c1\n"
     "   // c2\n"
     "   // c3\n"},

    // -----------------------------------------------------------------
};

// Tests that formatter produces expected results, end-to-end.
TEST(FormatterEndToEndTest, VerilogFormatTest) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, AutoInferAlignment) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"class  cc ;\n"
       "endclass:cc\n",
       "class cc;\n"
       "endclass : cc\n"},

      // module port declarations
      {"module pd(\n"
       "input wire foo,\n"
       "output reg bar\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "    input  wire foo,\n"  // flush-left vs. align are similar enough,
       "    output reg  bar\n"   // so automatic policy will align.
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "input  foo_pkg::baz_t foo,\n"
       "output reg  bar\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "    input foo_pkg::baz_t foo,\n"  // alignment would add too many spaces
       "    output reg bar\n"             // so infer intent to flush-left.
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "input  foo_pkg::baz_t foo,\n"
       "output     reg  bar\n"  // user injects 4 excess spaces here ...
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "    input  foo_pkg::baz_t foo,\n"
       "    output reg            bar\n"  // ... and triggers alignment.
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "`ifdef FAA\n"  // inside preprocessing conditional
       "input  baaaz_t foo,\n"
       "output reg      bar\n"  // user injects 4 excess spaces here ...
       "`endif\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "`ifdef FAA\n"
       "    input  baaaz_t foo,\n"
       "    output reg     bar\n"  // ... and triggers alignment.
       "`endif\n"
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "`ifdef FAA\n"  // inside preprocessing conditional
       "input  baaaz_t foo,\n"
       "`else\n"
       "output reg      bar\n"  // user injects 4 excess spaces here ...
       "`endif\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "`ifdef FAA\n"
       "    input  baaaz_t foo,\n"  // aligned
       "`else\n"                    // aligned across preprocessing directives
       "    output reg     bar\n"   // ... and triggers alignment.
       "`endif\n"
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "input logic [31:0] bus,\n"
       "input logic [7:0] bus2,\n"
       "`ifdef FAA\n"  // inside preprocessing conditional
       "input  baaaz_t foo,\n"
       "`else\n"
       "output reg      bar,\n"  // user injects 4 excess spaces here ...
       "`endif\n"
       "output out_t zout1,\n"
       "output out_t zout2\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "    input  logic   [31:0] bus,\n"  // treated as one large group
       "    input  logic   [ 7:0] bus2,\n"
       "`ifdef FAA\n"
       "    input  baaaz_t        foo,\n"  // aligned
       "`else\n"  // aligned across preprocessing directives
       "    output reg            bar,\n"  // ... and triggers alignment.
       "`endif\n"
       "    output out_t          zout1,\n"
       "    output out_t          zout2\n"
       ");\n"
       "endmodule : pd\n"},
      {"module pd(\n"
       "input logic [7:0] bus2,\n"
       "`ifndef FAA\n"  // inside preprocessing conditional
       "input logic [31:0] bus,\n"
       "input  baaaz_t foo,\n"
       "`elsif BLA\n"
       "output reg      bar,\n"  // user injects 4 excess spaces here ...
       "output out_t zout1,\n"
       "`endif\n"
       "output out_t zout2\n"
       ");\n"
       "endmodule:pd\n",
       "module pd (\n"
       "    input  logic   [ 7:0] bus2,\n"
       "`ifndef FAA\n"
       "    input  logic   [31:0] bus,\n"  // treated as one large group
       "    input  baaaz_t        foo,\n"  // aligned
       "`elsif BLA\n"  // aligned across preprocessing directives
       "    output reg            bar,\n"  // ... and triggers alignment.
       "    output out_t          zout1,\n"
       "`endif\n"
       "    output out_t          zout2\n"
       ");\n"
       "endmodule : pd\n"},
      {// data declaration and net declaration in ports
       "module m(\n"
       "logic [x:y]a    ,\n"    // packed dimensions, induce alignment
       "wire [pp:qq] [e:f]b\n"  // packed dimensions, 2D
       ") ;\n"
       "endmodule\n",
       "module m (\n"
       "    logic [  x:y]      a,\n"
       "    wire  [pp:qq][e:f] b\n"
       ");\n"
       "endmodule\n"},
      {// used-defined data declarations in ports
       "module m(\n"
       "a::bb [x:y]a    ,\n"       // packed dimensions, induce alignment
       "c#(d,e) [pp:qq] [e:f]b\n"  // packed dimensions, 2D
       ") ;\n"
       "endmodule\n",
       "module m (\n"
       "    a::bb    [  x:y]      a,\n"
       "    c#(d, e) [pp:qq][e:f] b\n"
       ");\n"
       "endmodule\n"},

      // named parameter arguments
      {"module  mm ;\n"
       "foo #(\n"
       ".a(a),\n"
       ".bb(bb)\n"
       ")bar( );\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo #(\n"
       "      .a (a),\n"  // align doesn't add too many spaces, so align
       "      .bb(bb)\n"
       "  ) bar ();\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo #(\n"
       ".a(a),\n"
       ".bbcccc(bb)\n"
       ")bar( );\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo #(\n"
       "      .a(a),\n"  // align would add too many spaces, so flush-left
       "      .bbcccc(bb)\n"
       "  ) bar ();\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo #(\n"
       ".a(a    ),\n"  // user manually triggers alignment with excess spaces
       ".bbcccc(bb)\n"
       ")bar( );\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo #(\n"
       "      .a     (a),\n"  // induced alignment
       "      .bbcccc(bb)\n"
       "  ) bar ();\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo #(\n"
       "//c1\n"        // with comments (indented but not aligned)
       ".a(a    ),\n"  // user manually triggers alignment with excess spaces
       "//c2\n"
       ".bbcccc(bb)\n"
       "//c3\n"
       ")bar( );\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo #(\n"
       "      //c1\n"
       "      .a     (a),\n"  // induced alignment
       "      //c2\n"
       "      .bbcccc(bb)\n"
       "      //c3\n"
       "  ) bar ();\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo #(\n"
       ".a( (1     +2)),\n"  // excess spaces, testing extra parentheses
       ".bbcccc((c*d)+(e*f))\n"
       ")bar( );\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo #(\n"
       "      .a     ((1 + 2)),\n"  // induced alignment
       "      .bbcccc((c * d) + (e * f))\n"
       "  ) bar ();\n"
       "endmodule : mm\n"},

      // named port connections
      {"module  mm ;\n"
       "foo bar(\n"
       ".a(a),\n"
       ".bb(bb)\n"
       ");\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo bar (\n"
       "      .a (a),\n"  // align doesn't add too many spaces, so align
       "      .bb(bb)\n"
       "  );\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo bar(\n"
       ".a(a),\n"
       ".bbbbbb(bb)\n"
       ");\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo bar (\n"
       "      .a(a),\n"  // align would add too many spaces, so flush-left
       "      .bbbbbb(bb)\n"
       "  );\n"
       "endmodule : mm\n"},
      {"module  mm ;\n"
       "foo bar(\n"
       ".a    (a),\n"  // user manually triggers alignment with excess spaces
       ".bbbbbb(bb)\n"
       ");\n"
       "endmodule:mm\n",
       "module mm;\n"
       "  foo bar (\n"
       "      .a     (a),\n"  // alignment fixed
       "      .bbbbbb(bb)\n"
       "  );\n"
       "endmodule : mm\n"},

      // net variable declarations
      {"module nn;\n"
       "wire wwwww;\n"
       "logic lll;\n"
       "endmodule : nn\n",
       "module nn;\n"
       "  wire  wwwww;\n"  // alignment adds few spaces, so align
       "  logic lll;\n"
       "endmodule : nn\n"},
      {"module nn;\n"
       "wire wwwww;\n"
       "foo_pkg::baz_t lll;\n"
       "endmodule : nn\n",
       "module nn;\n"
       "  wire wwwww;\n"  // alignment adds too many spaces, so flush-left
       "  foo_pkg::baz_t lll;\n"
       "endmodule : nn\n"},
      {"module nn;\n"
       "wire     wwwww;\n"  // user injects spaces to trigger alignment
       "foo_pkg::baz_t lll;\n"
       "endmodule : nn\n",
       "module nn;\n"
       "  wire           wwwww;\n"  // ... and gets alignment
       "  foo_pkg::baz_t lll;\n"
       "endmodule : nn\n"},
      {// data/net declarations as generate items (conditional)
       "module nn;\n"
       "if (cc)begin:fff\n"
       "wire wwwww;\n"
       "logic lll;\n"
       "end:fff\n"
       "endmodule : nn\n",
       "module nn;\n"
       "  if (cc) begin : fff\n"
       "    wire  wwwww;\n"  // alignment adds few spaces, so align
       "    logic lll;\n"
       "  end : fff\n"
       "endmodule : nn\n"},

      // continuous assignments
      {"module m_assign;\n"
       "assign foo = 1'b1;\n"  // alignment adds few spaces, so align
       "assign baar = 1'b0;\n"
       "endmodule\n",
       "module m_assign;\n"
       "  assign foo  = 1'b1;\n"  // aligned
       "  assign baar = 1'b0;\n"
       "endmodule\n"},
      {"module m_assign;\n"
       "assign foo  =  1'b1;\n"  // alignment adds too many spaces, so
                                 // flush-left
       "assign baaaaaar = 1'b0;\n"
       "endmodule\n",
       "module m_assign;\n"
       "  assign foo = 1'b1;\n"  // flush-left
       "  assign baaaaaar = 1'b0;\n"
       "endmodule\n"},
      {"module m_assign;\n"
       "assign foo  =     1'b1;\n"  // induce alignment with excess spaces
       "assign baaaaaar = 1'b0;\n"
       "endmodule\n",
       "module m_assign;\n"
       "  assign foo      = 1'b1;\n"  // aligned
       "  assign baaaaaar = 1'b0;\n"
       "endmodule\n"},
      {// currently, does not assign across ifdefs
       "module m_assign;\n"
       "`ifdef FOO\n"
       "assign foo  =     1'b1;\n"  // induce alignment with excess spaces
       "assign baaaaaar = 1'b0;\n"
       "`else\n"
       "assign zooo = 2'b11;\n"
       "assign yoo = 2'b00;\n"
       "`endif\n"
       "endmodule\n",
       "module m_assign;\n"
       "`ifdef FOO\n"
       "  assign foo      = 1'b1;\n"  // aligned
       "  assign baaaaaar = 1'b0;\n"
       "`else\n"                   // aligned separately above/below
       "  assign zooo = 2'b11;\n"  // aligned
       "  assign yoo  = 2'b00;\n"  // aligned
       "`endif\n"
       "endmodule\n"},
      {// mixed net declaration and continuous assignment, both groups aligned
       "module m_assign;\n"
       "wire     wwwww;\n"  // induce alignment
       "foo_pkg::baz_t lll;\n"
       "assign foo  =     1'b1;\n"  // induce alignment
       "assign baaaaaar = 1'b0;\n"
       "endmodule\n",
       "module m_assign;\n"
       "  wire           wwwww;\n"  // aligned
       "  foo_pkg::baz_t lll;\n"
       "  assign foo      = 1'b1;\n"  // aligned
       "  assign baaaaaar = 1'b0;\n"
       "endmodule\n"},
      {// continuous assignments as generate items (conditional)
       "module m_assign;\n"
       "if (xy) begin\n"
       "assign foo  =  1'b0;\n"  // align: adds few spaces
       "assign baaar = 1'b1;\n"
       "end else begin\n"
       "assign goo  =      1'b1;\n"  // induce alignment with excess spaces
       "assign zaaaaaar = 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module m_assign;\n"
       "  if (xy) begin\n"
       "    assign foo   = 1'b0;\n"  // aligned
       "    assign baaar = 1'b1;\n"
       "  end else begin\n"
       "    assign goo      = 1'b1;\n"  // induce alignment with excess spaces
       "    assign zaaaaaar = 1'b0;\n"
       "  end\n"
       "endmodule\n"},
      {// continuous assignments as generate items (loop)
       "module m_assign;\n"
       "for(genvar i=0; i<k; ++i ) begin\n"
       "assign foo  =  1'b0;\n"  // align: adds few spaces
       "assign baaar = 1'b1;\n"
       "end\n"
       "endmodule\n",
       "module m_assign;\n"
       "  for (genvar i = 0; i < k; ++i) begin\n"
       "    assign foo   = 1'b0;\n"  // aligned
       "    assign baaar = 1'b1;\n"
       "  end\n"
       "endmodule\n"},
      {// continuous assignments as generate items (case)
       "module m_assign;\n"
       "case (c)\n"
       "jk:begin\n"
       "assign foo  =  1'b0;\n"  // align: adds few spaces
       "assign baaar = 1'b1;\n"
       "end\n"
       "endcase\n"
       "endmodule\n",
       "module m_assign;\n"
       "  case (c)\n"
       "    jk: begin\n"
       "      assign foo   = 1'b0;\n"  // aligned
       "      assign baaar = 1'b1;\n"
       "    end\n"
       "  endcase\n"
       "endmodule\n"},
      {// continuous assignment with comment
       "module m;\n"
       "// comment1\n"
       "assign aaaaa = (bbbbb != ccccc) &\n"
       "// comment2\n"
       "(ddddd | (eeeee & ffffff));\n"
       "endmodule\n",
       "module m;\n"
       "  // comment1\n"
       "  assign aaaaa = (bbbbb != ccccc) &\n"
       "      // comment2\n"
       "      (ddddd | (eeeee & ffffff));\n"
       "endmodule\n"},

      // net/variable assignments: blocking and nonblocking
      {"module  ma ;\n"
       "initial  begin\n"
       "aa = b;\n"
       "c = 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  initial begin\n"
       "    aa = b;\n"
       "    c  = 1'b0;\n"  // only one space to align
       "  end\n"
       "endmodule\n"},
      {"function void  fa ;\n"
       "c = 1'b0;\n"
       "aa = b;\n"
       "endfunction\n",
       "function void fa;\n"
       "  c  = 1'b0;\n"  // only one space to align
       "  aa = b;\n"
       "endfunction\n"},
      {"task  ta ; \n"
       "aa =  b;\n"
       "c = 1'b0;\n"
       "endtask\n",
       "task ta;\n"
       "  aa = b;\n"
       "  c  = 1'b0;\n"  // only one space to align
       "endtask\n"},
      {"module  ma ;\n"
       "always@( posedge clk) begin\n"
       "aaa <= b;\n"
       "c <= 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  always @(posedge clk) begin\n"
       "    aaa <= b;\n"
       "    c   <= 1'b0;\n"  // only two spaces to align
       "  end\n"
       "endmodule\n"},
      {"function int  fa ;\n"
       "c <= 1'b0;\n"
       "aa <= b;\n"
       "return 0 ;\n"
       "endfunction\n",
       "function int fa;\n"
       "  c  <= 1'b0;\n"  // only one space to align
       "  aa <= b;\n"
       "  return 0;\n"
       "endfunction\n"},
      {"task  ta ; \n"
       "$display (\"hello\" );\n"
       "aa <=  b;\n"
       "c <= 1'b0;\n"
       "endtask\n",
       "task ta;\n"
       "  $display(\"hello\");\n"
       "  aa <= b;\n"
       "  c  <= 1'b0;\n"  // only one space to align
       "endtask\n"},
      {// mixed blocking and nonblocking assignments
       "module  ma ;\n"
       "always@( posedge clk) begin\n"
       "aaaaa  = b;\n"
       "ccc  = 1'b0;\n"
       "aaa <= b;\n"
       "c <= 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  always @(posedge clk) begin\n"
       "    aaaaa = b;\n"
       "    ccc   = 1'b0;\n"  // only two spaces to align
       "    aaa <= b;\n"
       "    c   <= 1'b0;\n"  // only two spaces to align (separate group)
       "  end\n"
       "endmodule\n"},
      {"task  ta ; \n"
       "aa <=  b;\n"
       "c <= 1'b0;\n"
       "$display (\"hello\" );\n"  // separates above/below alignment groups
       "zzaa <=  b;\n"
       "zzc <= 1'b0;\n"
       "endtask\n",
       "task ta;\n"
       "  aa <= b;\n"
       "  c  <= 1'b0;\n"  // only one space to align
       "  $display(\"hello\");\n"
       "  zzaa <= b;\n"
       "  zzc  <= 1'b0;\n"  // only one space to align
       "endtask\n"},
      {"task  ta ; \n"
       "$display (\"hello\" );\n"
       "aaaaa <=  b;\n"
       "c <= 1'b0;\n"  // need too many spaces to align
       "endtask\n",
       "task ta;\n"
       "  $display(\"hello\");\n"
       "  aaaaa <= b;\n"
       "  c <= 1'b0;\n"  // so keep flush-left
       "endtask\n"},
      {"function void  fa ; \n"
       "$display (\"hello\" );\n"
       "aaaaa =  b;\n"
       "c = 1'b0;\n"  // need too many spaces to align
       "endfunction\n",
       "function void fa;\n"
       "  $display(\"hello\");\n"
       "  aaaaa = b;\n"
       "  c = 1'b0;\n"  // so keep flush-left
       "endfunction\n"},
      {"module  ma ;\n"
       "always@( posedge clk) begin\n"
       "aaaxx <= b;\n"
       "c <= 1'b0;\n"  // need too many spaces to align
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  always @(posedge clk) begin\n"
       "    aaaxx <= b;\n"
       "    c <= 1'b0;\n"  // so keep flush-left
       "  end\n"
       "endmodule\n"},
      {"module  ma ;\n"
       "always@( posedge clk) begin\n"
       "aaaxx <= b    ;\n"  // inject 4 spaces to induce alignment
       "c <= 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  always @(posedge clk) begin\n"
       "    aaaxx <= b;\n"
       "    c     <= 1'b0;\n"  // induced alignment
       "  end\n"
       "endmodule\n"},
      {"module  ma ;\n"
       "always@( posedge clk) begin\n"
       "aaaxx <= b    ;\n"  // inject 4 spaces to induce alignment
       "//comment\n"
       "c <= 1'b0;\n"
       "end\n"
       "endmodule\n",
       "module ma;\n"
       "  always @(posedge clk) begin\n"
       "    aaaxx <= b;\n"
       "    //comment\n"       // ignored within alignment group
       "    c     <= 1'b0;\n"  // induced alignment
       "  end\n"
       "endmodule\n"},

      // local variable declarations as statements
      {"task tt ;\n"
       "int foo;\n"  // only 2 spaces needed to align
       "bar_t baz;\n"
       "endtask\n",
       "task tt;\n"
       "  int   foo;\n"  // aligned
       "  bar_t baz;\n"
       "endtask\n"},
      {"function ff ;\n"
       "bar_t baz;\n"
       "int foo;\n"  // only 2 spaces needed to align
       "endfunction\n",
       "function ff;\n"
       "  bar_t baz;\n"
       "  int   foo;\n"  // aligned
       "endfunction\n"},
      {"task tt ;\n"
       "int  foo;\n"  // too many spaces needed to align
       "baaaar_t baz;\n"
       "endtask\n",
       "task tt;\n"
       "  int foo;\n"  // so flush-left
       "  baaaar_t baz;\n"
       "endtask\n"},
      {"function ff ;\n"
       "baaaar_t baz;\n"
       "int  foo;\n"  // too many spaces needed to align
       "endfunction\n",
       "function ff;\n"
       "  baaaar_t baz;\n"
       "  int foo;\n"  // so flush-left
       "endfunction\n"},
      {"task tt ;\n"
       "int        foo;\n"  // injected spaces to induce alignment
       "baaaar_t baz;\n"
       "endtask\n",
       "task tt;\n"
       "  int      foo;\n"  // aligned
       "  baaaar_t baz;\n"
       "endtask\n"},
      {"function ff ;\n"
       "baaaar_t baz    ;\n"  // injected spaces to induce alignment
       "int  foo;\n"
       "endfunction\n",
       "function ff;\n"
       "  baaaar_t baz;\n"
       "  int      foo;\n"  // so aligned
       "endfunction\n"},

      // formal parameters
      {"module pp #(\n"
       "int W,\n"
       "type T\n"
       ") ();\n"
       "endmodule : pp\n",
       "module pp #(\n"
       "    int  W,\n"  // alignment adds few spaces, so do it
       "    type T\n"
       ") ();\n"
       "endmodule : pp\n"},
      {"module pp #(\n"
       "int W,\n"
       "int[xx:yy] T\n"
       ") ();\n"
       "endmodule : pp\n",
       "module pp #(\n"
       "    int W,\n"  // alignment adds many spaces, so flush-left
       "    int [xx:yy] T\n"
       ") ();\n"
       "endmodule : pp\n"},
      {"module pp #(\n"
       "int W,\n"
       "int[xx:yy]     T\n"  // user injected spaces intentionally
       ") ();\n"
       "endmodule : pp\n",
       "module pp #(\n"
       "    int         W,\n"  // ... trigger alignment
       "    int [xx:yy] T\n"
       ") ();\n"
       "endmodule : pp\n"},

      // class member variables
      {"class  cc ;\n"
       "int my_int;\n"
       "bar_t my_bar;\n"
       "endclass:cc\n",
       "class cc;\n"
       "  int   my_int;\n"  // align doesn't add too many spaces, so align
       "  bar_t my_bar;\n"
       "endclass : cc\n"},
      {"class  cc ;\n"
       "int   my_int;\n"
       "foo_pkg::bar_t my_bar;\n"
       "endclass:cc\n",
       "class cc;\n"
       "  int my_int;\n"  // align would add too many spaces, so flush-left
       "  foo_pkg::bar_t my_bar;\n"
       "endclass : cc\n"},
      {"class  cc ;\n"
       "int     my_int;\n"  // intentional excessive spaces, trigger alignment
       "foo_pkg::bar_t my_bar;\n"
       "endclass:cc\n",
       "class cc;\n"
       "  int            my_int;\n"
       "  foo_pkg::bar_t my_bar;\n"
       "endclass : cc\n"},
      {"class  cc ;\n"
       "int    my_int;\n"  // unable to infer user's intent, so preserve
       "foo_pkg::bar_t  my_bar;\n"
       "endclass:cc\n",
       "class cc;\n"
       "  int    my_int;\n"  // ... but still indent
       "  foo_pkg::bar_t  my_bar;\n"
       "endclass : cc\n"},

      // case item test cases
      {// small difference between flush-left and align, so align
       "function f; case (x)kZZZZ  :if( b )break; default :return 2;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZZZZ:   if (b) break;\n"  // aligned, only adds 2 spaces
       "    default: return 2;\n"
       "  endcase\n"
       "endfunction\n"},
      {// small error relative to flush-left, so flush-left
       "function f; case (x)kZ  :if( b )break; default :return 2;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZ: if (b) break;\n"  // flush-left
       "    default: return 2;\n"
       "  endcase\n"
       "endfunction\n"},
      {// intentional spacing error (delta=4) induces alignment
       "function f; case (x)kZ  :if( b )break; default    :return 2;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZ:      if (b) break;\n"
       "    default: return 2;\n"
       "  endcase\n"
       "endfunction\n"},
      {// induced alignment, with ignored comments
       "function f; case (x)kZ  :if( b )break; \n//c1\n kXX: g = f; "
       "\n//c2\ndefault    :return 2;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZ:      if (b) break;\n"
       "    //c1\n"
       "    kXX:     g = f;\n"
       "    //c2\n"
       "    default: return 2;\n"
       "  endcase\n"
       "endfunction\n"},
      {// induced alignment, ignore multiline case item in the middle
       "function f; case (x)"
       "kZ  :if( b )break; "
       "kYY    :return 2;"          // excess spaces induce alignment
       "    kXXXXXXXXX: begin end"  // multi-line, ignored
       "    kWWWWW: cc = 23;\n"
       "    kVVV: cd = 24;\n"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZ:     if (b) break;\n"
       "    kYY:    return 2;\n"
       "    kXXXXXXXXX: begin\n"  // separates above/below groups
       "    end\n"
       "    kWWWWW: cc = 23;\n"
       "    kVVV:   cd = 24;\n"  // aligned
       "  endcase\n"
       "endfunction\n"},
      {// induced alignment, ignore multiline case item in the middle
       "function f; case (x)"
       "kZ  :if( b )break; "
       "kYY    :return 2;"               // excess spaces induce alignment
       "    kXXXXXXXXX: if(w)begin end"  // multi-line, ignored
       "    kWWWWW: cc = 23;\n"
       "    kVVV: cd = 24;\n"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x)\n"
       "    kZ:     if (b) break;\n"
       "    kYY:    return 2;\n"
       "    kXXXXXXXXX:\n"   // TODO(fangism): allow this to merge with if()
                             // else indent the following two lines
       "    if (w) begin\n"  // separates above/below groups
       "    end\n"
       "    kWWWWW: cc = 23;\n"
       "    kVVV:   cd = 24;\n"  // aligned
       "  endcase\n"
       "endfunction\n"},
      {// induced alignment, ignore multiline case item in the middle
       "task t; case (x)"
       "kZ  :if( b )break; "
       "kYY    :return 2;"           // excess spaces induce alignment
       "    kXXXXXXXXX: fork  join"  // multi-line, ignored
       "    kWWWWW: cc = 23;\n"
       "    kVVV: cd = 24;\n"
       "endcase endtask\n",
       "task t;\n"
       "  case (x)\n"
       "    kZ:     if (b) break;\n"
       "    kYY:    return 2;\n"
       "    kXXXXXXXXX:\n"  // TODO(fangism): allow this to merge with fork
                            // else indent the following two lines
       "    fork\n"         // separates above/below groups
       "    join\n"
       "    kWWWWW: cc = 23;\n"
       "    kVVV:   cd = 24;\n"  // aligned
       "  endcase\n"
       "endtask\n"},
      {// case-inside: small difference between flush-left and align, so align
       "function f; case (x)inside [0:3]  :yy=zzz; [4:11] :yy=zz;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x) inside\n"
       "    [0 : 3]:  yy = zzz;\n"  // aligned, only adds 1 spaces
       "    [4 : 11]: yy = zz;\n"
       "  endcase\n"
       "endfunction\n"},
      {// case-inside: align with comments
       "function f; case (x)inside \n//c1\n[0:3]  :yy=zzz;\n//c2\n"
       " [4:11] :yy=zz;\n//c3\n"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x) inside\n"
       "    //c1\n"
       "    [0 : 3]:  yy = zzz;\n"  // aligned, only adds 1 spaces
       "    //c2\n"
       "    [4 : 11]: yy = zz;\n"
       "    //c3\n"
       "  endcase\n"
       "endfunction\n"},
      {// case-inside: flush left
       "function f; case (x)inside [0:3]  :yy=zzz; [4:999999] :yy=zz;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x) inside\n"
       "    [0 : 3]: yy = zzz;\n"  // flush-left
       "    [4 : 999999]: yy = zz;\n"
       "  endcase\n"
       "endfunction\n"},
      {// case-inside: induce alignment
       "function f; case (x)inside [0:3    ]  :yy=zzz; [4:999999] :yy=zz;"
       "endcase endfunction\n",
       "function f;\n"
       "  case (x) inside\n"
       "    [0 : 3]:      yy = zzz;\n"  // aligned
       "    [4 : 999999]: yy = zz;\n"
       "  endcase\n"
       "endfunction\n"},
      {// case-generate: align would add few spaces, so align
       "module mc ; case (x)kZ  : gg h(); kXYY :j kk();"
       "endcase endmodule\n",
       "module mc;\n"
       "  case (x)\n"
       "    kZ:   gg h ();\n"  // align
       "    kXYY: j kk ();\n"
       "  endcase\n"
       "endmodule\n"},
      {// case-generate + comment: align would add few spaces, so align
       "module mc ; case (x)kZ  : gg h(); \n//c1\n kXYY :j kk();"
       "endcase endmodule\n",
       "module mc;\n"
       "  case (x)\n"
       "    kZ:   gg h ();\n"  // align
       "    //c1\n"
       "    kXYY: j kk ();\n"
       "  endcase\n"
       "endmodule\n"},
      {// case-generate: align would add too many space, so flush-left
       "module mc ; case (x)kZ  : gg h(); kXYYYY :j kk();"
       "endcase endmodule\n",
       "module mc;\n"
       "  case (x)\n"
       "    kZ: gg h ();\n"  // flush-left
       "    kXYYYY: j kk ();\n"
       "  endcase\n"
       "endmodule\n"},
      {// case-generate: inject spaces to induce alignment
       "module mc ; case (x)kZ  : gg h(); kXYYYY :     j kk();"
       "endcase endmodule\n",
       "module mc;\n"
       "  case (x)\n"
       "    kZ:     gg h ();\n"  // align
       "    kXYYYY: j kk ();\n"
       "  endcase\n"
       "endmodule\n"},
      {// randcase: align (small difference from flush-left)
       "task trc  ;randcase 10: x = 1; 1: x = 3; endcase endtask",
       "task trc;\n"
       "  randcase\n"
       "    10: x = 1;\n"
       "    1:  x = 3;\n"  // aligned
       "  endcase\n"
       "endtask\n"},
      {// randcase: inferred flush-left
       "task trc  ;randcase 10000: x = 1; 1: x = 3; endcase endtask",
       "task trc;\n"
       "  randcase\n"
       "    10000: x = 1;\n"
       "    1: x = 3;\n"
       "  endcase\n"
       "endtask\n"},
      {// randcase: induce alignment
       "task trc  ;randcase 10000: x = 1    ; 1: x = 3; endcase endtask",
       "task trc;\n"
       "  randcase\n"
       "    10000: x = 1;\n"
       "    1:     x = 3;\n"  // aligned
       "  endcase\n"
       "endtask\n"},

      // distributions
      {"class foo;\n"
       "constraint c { "
       "timer_enable dist {\n"
       "8'hfe :=  9 , \n"
       "12'hfff  := 1 }; "
       "} endclass\n",
       "class foo;\n"
       "  constraint c {\n"
       "    timer_enable dist {\n"
       "      8'hfe   := 9,\n"  // only two spaces needed to align
       "      12'hfff := 1\n"   // so align
       "    };\n"
       "  }\n"
       "endclass\n"},
      {"class foo;\n"
       "constraint c { "
       "timer_enable dist {\n"
       "[ 8'h0 : 8'hfe ] :/  9 , \n"
       "8'hff  :/ 1 }; "  // takes many spaces to align this, so...
       "} endclass\n",
       "class foo;\n"
       "  constraint c {\n"
       "    timer_enable dist {\n"
       "      [8'h0 : 8'hfe] :/ 9,\n"
       "      8'hff :/ 1\n"  // flush-left
       "    };\n"
       "  }\n"
       "endclass\n"},
      {"class foo;\n"
       "constraint c { "
       "timer_enable dist {\n"
       "[ 8'h0 : 8'hfe ] :/  9 , \n"
       "8'hff  :/     1 }; "  // inject excess spaces to trigger alignment
       "} endclass\n",
       "class foo;\n"
       "  constraint c {\n"
       "    timer_enable dist {\n"
       "      [8'h0 : 8'hfe] :/ 9,\n"
       "      8'hff          :/ 1\n"  // aligned
       "    };\n"
       "  }\n"
       "endclass\n"},
      {"class foo;\n"
       "constraint c { "
       "timer_enable dist {\n"
       "//comment1\n"
       "[ 8'h0 : 8'hfe ] :/  9 , \n"
       "//comment2\n"
       "8'hff  :/     1 \n"
       "//comment3\n"
       "}; "  // inject excess spaces to trigger alignment
       "} endclass\n",
       "class foo;\n"
       "  constraint c {\n"
       "    timer_enable dist {\n"
       "      //comment1\n"
       "      [8'h0 : 8'hfe] :/ 9,\n"
       "      //comment2\n"           // align across comment
       "      8'hff          :/ 1\n"  // aligned
       "      //comment3\n"
       "    };\n"
       "  }\n"
       "endclass\n"},
  };
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Override some settings to test auto-inferred alignment.
  style.ApplyToAllAlignmentPolicies(AlignmentPolicy::kInferUserIntent);

  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}  // NOLINT(readability/fn_size)

static constexpr FormatterTestCase kFormatterWideTestCases[] = {
    // specify blocks
    {"module  specify_tests ;\n"
     "specify\n"  // empty list
     "endspecify\n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "  endspecify\n"
     "endmodule\n"},
    {"module  specify_tests ;\n"
     "specify\n"
     "$recrem (posedge R, posedge C,\n"
     "t1, t2);\n"
     "endspecify\n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "    $recrem(posedge R, posedge C, t1, t2);\n"
     "  endspecify\n"
     "endmodule\n"},
    {"module  specify_tests ;\n"
     "specify\n"
     "// TODO: add this\n"
     "endspecify \n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "    // TODO: add this\n"
     "  endspecify\n"
     "endmodule\n"},
    {"module  specify_tests ;\n"
     "specify  \n"
     "  //c1\n"
     "$setup (  posedge A, posedge B,\n"
     "t1);//c2\n"
     " //c3\n"
     "$hold (  posedge B , posedge A,t2);    //c4\n"
     "\t//c5\n"
     "endspecify\n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "    //c1\n"
     "    $setup(posedge A, posedge B, t1);  //c2\n"
     "    //c3\n"
     "    $hold(posedge B, posedge A, t2);  //c4\n"
     "    //c5\n"
     "  endspecify\n"
     "endmodule\n"},
    {"module  specify_tests ;\n"
     "specify  \n"
     "$setup (  posedge A, posedge B,\n"
     "t1);\n"
     "$hold (  posedge B , posedge A,t2);\n"
     "endspecify\n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "    $setup(posedge A, posedge B, t1);\n"
     "    $hold(posedge B, posedge A, t2);\n"
     "  endspecify\n"
     "endmodule\n"},
    {"module  specify_tests ;\n"
     "specify  \n"
     "  `ifdef CCC\n"
     "$setup (  posedge A, posedge B,\n"
     "t1);\n"
     " `else\n"
     "$hold (  posedge B , posedge A,t2);   \n"
     "\t`endif\n"
     "endspecify\n"
     "endmodule",
     "module specify_tests;\n"
     "  specify\n"
     "`ifdef CCC\n"
     "    $setup(posedge A, posedge B, t1);\n"
     "`else\n"
     "    $hold(posedge B, posedge A, t2);\n"
     "`endif\n"
     "  endspecify\n"
     "endmodule\n"},
};

// These tests just need a larger column limit to fit on one line.
TEST(FormatterEndToEndTest, VerilogFormatWideTest) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 60;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterWideTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, DisableModulePortDeclarations) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "  endmodule\n",
       "module m ();\n"  // empty ports formatted compactly
       "endmodule\n"},
      {// for a single port, the alignment handler doesn't even consider it a
       // group so it falls back to standard flush-left behavior.
       "module  m   ( input     clk  )\t;\n"
       "  endmodule\n",
       "module m (\n"
       "    input clk\n"
       ");\n"
       "endmodule\n"},
      {// example with two ports
       "module  m   (\n"
       "input  clk,\n"
       "output bar\n"
       ")\t;\n"
       "  endmodule\n",
       "module m (\n"
       "    input  clk,\n"  // indented, but internal pre-existing spacing
                            // preserved
       "    output bar\n"
       ");\n"
       "endmodule\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.port_declarations_alignment = verible::AlignmentPolicy::kPreserve;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, DisableModuleInstantiations) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m  ;\t\n"
       "foo bar();"
       "  endmodule\n",
       "module m;\n"
       "  foo bar ();\n"  // indentation still takes effect
       "endmodule\n"},
      {"module  m  ;\t\n"
       "logic   xyz;"
       "wire\tabc;"
       "  endmodule\n",
       "module m;\n"
       "  logic xyz;\n"  // indentation still takes effect
       "  wire  abc;\n"  // aligned too
       "endmodule\n"},
      {"  function f  ;\t\n"
       " endfunction\n",
       "function f;\n"
       "endfunction\n"},
      {"  function f  ;\t"
       "foo  bar,baz; "
       " endfunction\n",
       "function f;\n"
       "  foo bar, baz;\n"
       "endfunction\n"},
      {"  task  t  ;\t"
       "foo  bar,baz; "
       " endtask\n",
       "task t;\n"
       "  foo bar, baz;\n"
       "endtask\n"},
      {"module  m  ;\t\n"
       "foo  bar(   .baz(baz)   );"
       "  endmodule\n",
       "module m;\n"
       "  foo bar (.baz(baz));\n"  // indentation still takes effect
       "endmodule\n"},
      {"module  m  ;\t\n"
       "foo  bar(\n"
       "        .baz  (baz  ),\n"  // example of user-manual alignment
       "        .blaaa(blaaa)\n"
       ");"
       "  endmodule\n",
       "module m;\n"
       "  foo bar (\n"           // indentation still takes effect
       "      .baz  (baz  ),\n"  // named port connections preserved
       "      .blaaa(blaaa)\n"   // named port connections preserved
       "  );\n"                  // this indentation is fixed
       "endmodule\n"},
      {"module  m  ;\t\n"
       "foo  #(   .baz(baz)   ) bar();"  // named parameters
       "  endmodule\n",
       "module m;\n"
       "  foo #(.baz(baz)) bar ();\n"  // indentation still takes effect
       "endmodule\n"},
      {"module  m  ;\t\n"
       "foo  #(\n"
       "        .baz  (baz  ),\n"  // example of user-manual alignment
       "        .blaaa(blaaa)\n"
       ")  bar( );"
       "  endmodule\n",
       "module m;\n"
       "  foo #(\n"              // indentation still takes effect
       "      .baz  (baz  ),\n"  // named parameter arguments preserved
       "      .blaaa(blaaa)\n"   // named parameter arguments preserved
       "  ) bar ();\n"           // this indentation is fixed
       "endmodule\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Testing preservation of spaces
  style.named_parameter_alignment = AlignmentPolicy::kPreserve;
  style.named_port_alignment = AlignmentPolicy::kPreserve;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, DisableTryWrapLongLines) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "  endmodule\n",
       "module m ();\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "initial assign a = b;\n"
       "  endmodule\n",
       "module m ();\n"
       "  initial assign a = b;\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "initial assign a = {never +gonna +give +you +up,\n"
       "never + gonna +Let +you +down};\n"
       "  endmodule\n",
       "module m ();\n"
       "  initial\n"
       "    assign a = {\n"
       "      never + gonna + give + you + up,\n"
       "      never + gonna + Let + you + down\n"
       "    };\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "initial assign a = {never +gonna +give +you +up+\n"  // over 40 columns,
                                                             // give up
       "never + gonna +Let +you +down};\n"
       "  endmodule\n",
       "module m ();\n"
       "  initial\n"
       "    assign a = {\n"
       "      never +gonna +give +you +up+\n"  // indented properly, but
       "never + gonna +Let +you +down\n"       // preserved original
       "    };\n"
       "endmodule\n"},
      {// The if-header is a single leaf partition, and does not fit,
       // so its original spacing should be preserved.
       // We deliberately insert weird spacing to show that it is preserved.
       "function f;\n"
       "if ((xxx.aaaa >= bbbbbbbbbbbbbbb) &&\n"
       "      ((ccc.ddd  +  eee.ffffff * g) <=\n"
       "       (hhhhhhhhhhhhhhh+iiiiiiiiiiiiiiiiiiii))) begin\n"
       "end\n"
       "endfunction\n",
       "function f;\n"
       "  if ((xxx.aaaa >= bbbbbbbbbbbbbbb) &&\n"  // indentation fixed
       "      ((ccc.ddd  +  eee.ffffff * g) <=\n"
       "       (hhhhhhhhhhhhhhh+iiiiiiiiiiiiiiiiiiii))) begin\n"
       "  end\n"  // indentation fixed
       "endfunction\n"},

      // Make sure indentation still works with wrapping disabled,
      // and leaf partitions fit on one line.
      {"function void f();\n"
       "for (int i = N; i > 0; i--) begin\n"
       "end\n"
       "endfunction\n",
       "function void f();\n"
       "  for (int i = N; i > 0; i--) begin\n"
       "  end\n"
       "endfunction\n"},
      {"function void f();"
       "if(i > 0 ) begin end "
       "endfunction",
       "function void f();\n"
       "  if (i > 0) begin\n"
       "  end\n"
       "endfunction\n"},
      {"function void f();"  // newlines absent from input
       "for (int i=N; i>0; i--) begin end "
       "endfunction",
       "function void f();\n"
       "  for (int i = N; i > 0; i--) begin\n"  // spacing corrected
       "  end\n"
       "endfunction\n"},
      {"module m( );\n"
       "  always_ff  @  (  posedge  (  clk  )  ) begin\n"
       "out  <=  rst_clk  ?  0 : in  ;\n"
       "end\n"
       "endmodule : simple\n",
       "module m ();\n"
       "  always_ff @(posedge (clk)) begin\n"
       "    out <= rst_clk ? 0 : in;\n"
       "  end\n"
       "endmodule : simple\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.try_wrap_long_lines = false;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, ModulePortDeclarationsIndentNotWrap) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "  endmodule\n",
       "module m ();\n"  // empty ports formatted compactly
       "endmodule\n"},
      {// single port example
       "module  m   ( input     clk  )\t;\n"
       "  endmodule\n",
       "module m (\n"
       "  input clk\n"  // 2 spaces
       ");\n"
       "endmodule\n"},
      {// example with two ports
       "module  m   (\n"
       "input  clk,\n"
       "output bar\n"
       ")\t;\n"
       "  endmodule\n",
       "module m (\n"
       "  input  clk,\n"  // indented 2 spaces, and aligned
       "  output bar\n"
       ");\n"
       "endmodule\n"},
      {// interface example
       "interface  handshake   (\n"
       "wire req,\n"
       "wire ack\n"
       ")\t;\n"
       "  endinterface\n",
       "interface handshake (\n"
       "  wire req,\n"  // indented 2 spaces
       "  wire ack\n"
       ");\n"
       "endinterface\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Indent 2 spaces instead of wrapping 4 spaces.
  style.port_declarations_indentation = IndentationStyle::kIndent;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, NamedPortConnectionsIndentNotWrap) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m(   ) ;\n"
       "  endmodule\n",
       "module m ();\n"  // empty ports formatted compactly
       "endmodule\n"},
      {// single port example
       "module  m ;\n"
       "foo bar( .clk( clk ) )\t;\n"
       "  endmodule\n",
       "module m;\n"
       "  foo bar (.clk(clk));\n"
       "endmodule\n"},
      {// two port example
       "module  m ;\n"
       "foo bar( .clk2( clk ),.data (data) )\t;\n"
       "  endmodule\n",
       "module m;\n"
       "  foo bar (\n"
       "    .clk2(clk),\n"  // indent only +2 spaces
       "    .data(data)\n"
       "  );\n"
       "endmodule\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Indent 2 spaces instead of wrapping 4 spaces.
  style.named_port_indentation = IndentationStyle::kIndent;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, FormalParametersIndentNotWrap) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m #(   ) ;\n"  // empty parameters
       "  endmodule\n",
       "module m #();\n"
       "endmodule\n"},
      {// single parameter example
       "module  m   #( int W = 2)\t;\n"
       "  endmodule\n",
       "module m #(\n"
       "  int W = 2\n"  // indented 2 spaces
       ");\n"
       "endmodule\n"},
      {// module with two parameters
       "module  m   #(\n"
       "int W = 2,\n"
       "int L = 4\n"
       ")\t;\n"
       "  endmodule\n",
       "module m #(\n"
       "  int W = 2,\n"  // indented 2 spaces
       "  int L = 4\n"
       ");\n"
       "endmodule\n"},
      {// interface with two parameters
       "interface  m   #(\n"
       "int W = 2,\n"
       "int L = 4\n"
       ")\t;\n"
       "  endinterface\n",
       "interface m #(\n"
       "  int W = 2,\n"  // indented 2 spaces
       "  int L = 4\n"
       ");\n"
       "endinterface\n"},
      {// class with two parameters
       "class  c   #(\n"
       "int W = 2,\n"
       "int L = 4\n"
       ")\t;\n"
       "  endclass\n",
       "class c #(\n"
       "  int W = 2,\n"  // indented 2 spaces
       "  int L = 4\n"
       ");\n"
       "endclass\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Indent 2 spaces instead of wrapping 4 spaces.
  style.formal_parameters_indentation = IndentationStyle::kIndent;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, NamedParametersIndentNotWrap) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"module  m  ;\t\n"
       "  endmodule\n",
       "module m;\n"
       "endmodule\n"},
      {"module  m #(   ) ;\n"  // empty parameters
       "  endmodule\n",
       "module m #();\n"
       "endmodule\n"},
      {"module  m  ;\t\n"
       " foo #()bar();\n"
       "  endmodule\n",
       "module m;\n"
       "  foo #() bar ();\n"
       "endmodule\n"},
      {// one named parameter
       "module  m ;\n"
       "foo #(.W(1)) bar();\n"
       "  endmodule\n",
       "module m;\n"
       "  foo #(.W(1)) bar ();\n"
       "endmodule\n"},
      {// two named parameters
       "module  m ;\n"
       "foo #(.W(1), .L(2)) bar();\n"
       "  endmodule\n",
       "module m;\n"
       "  foo #(\n"
       "    .W(1),\n"  // indent +2 spaces only
       "    .L(2)\n"
       "  ) bar ();\n"
       "endmodule\n"},
      {// class data member with two parameters
       "class  c  ;\n"
       " foo_pkg::bar_t#(\n"
       ".W(2),.L(4)"
       ") baz;\n"
       "  endclass\n",
       "class c;\n"
       "  foo_pkg::bar_t #(\n"
       "    .W(2),\n"  // indent +2 spaces only
       "    .L(4)\n"
       "  ) baz;\n"
       "endclass\n"},
      {// typedef with two parameters
       "typedef \n"
       " foo_pkg::bar_t  #("
       ".W(2),.L(4)"
       ") baz;\n",
       "typedef foo_pkg::bar_t#(\n"
       "  .W(2),\n"  // indent +2 spaces only
       "  .L(4)\n"
       ") baz;\n"},
  };
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  // Indent 2 spaces instead of wrapping 4 spaces.
  style.named_parameter_indentation = IndentationStyle::kIndent;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

struct SelectLinesTestCase {
  absl::string_view input;
  LineNumberSet lines;  // explicit set of lines to enable formatting
  absl::string_view expected;
};

// Tests that formatter honors selected line numbers.
TEST(FormatterEndToEndTest, SelectLines) {
  const SelectLinesTestCase kTestCases[] = {
      {"", {}, ""},
      {"", {{1, 2}}, ""},
      {// expect all three lines for format
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {},
       "parameter int foo_line1 = 0;\n"
       "parameter int foo_line2 = 0;\n"
       "parameter int foo_line3 = 0;\n"},
      {// expect only one line to format
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{1, 2}},
       "parameter int foo_line1 = 0;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"},
      {// expect only one line to format
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{2, 3}},
       "  parameter    int foo_line1 =     0 ;\n"
       "parameter int foo_line2 = 0;\n"
       "  parameter    int foo_line3 =     0 ;\n"},
      {// expect only one line to format
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{3, 4}},
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "parameter int foo_line3 = 0;\n"},
      {// expect to format two lines
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{1, 3}},
       "parameter int foo_line1 = 0;\n"
       "parameter int foo_line2 = 0;\n"
       "  parameter    int foo_line3 =     0 ;\n"},
      {// expect to format two lines
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{2, 4}},
       "  parameter    int foo_line1 =     0 ;\n"
       "parameter int foo_line2 = 0;\n"
       "parameter int foo_line3 = 0;\n"},
      {// expect to format two lines
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{1, 2}, {3, 4}},
       "parameter int foo_line1 = 0;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "parameter int foo_line3 = 0;\n"},
      {// expect to format all lines
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{1, 4}},
       "parameter int foo_line1 = 0;\n"
       "parameter int foo_line2 = 0;\n"
       "parameter int foo_line3 = 0;\n"},
      {// expect to format no lines (line numbers out of bounds)
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n",
       {{4, 6}},
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"},
      {// expect to format all lines
       "// verilog_format: on\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "  parameter    int foo_line4 =     0 ;\n",
       {},
       "// verilog_format: on\n"
       "parameter int foo_line2 = 0;\n"
       "parameter int foo_line3 = 0;\n"
       "parameter int foo_line4 = 0;\n"},
      {// expect to format no lines
       "// verilog_format: off\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "  parameter    int foo_line4 =     0 ;\n",
       {},
       "// verilog_format: off\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "  parameter    int foo_line4 =     0 ;\n"},
      {// expect to format some lines
       "// verilog_format: on\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "  parameter    int foo_line4 =     0 ;\n",
       {{3, 5}},
       "// verilog_format: on\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "parameter int foo_line3 = 0;\n"  // disable lines 3,4
       "parameter int foo_line4 = 0;\n"},
      {// enable all lines, but respect format-off
       "  parameter    int foo_line1 =     0 ;\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "// verilog_format: off\n"
       "  parameter    int foo_line4 =     0 ;\n",
       {{1, 5}},
       "parameter int foo_line1 = 0;\n"
       "parameter int foo_line2 = 0;\n"
       "// verilog_format: off\n"
       "  parameter    int foo_line4 =     0 ;\n"},
      {// enable all lines, but respect format-off
       "  parameter    int foo_line1 =     0 ;\n"
       "// verilog_format: off\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "// verilog_format: on\n"
       "  parameter    int foo_line5 =     0 ;\n",
       {{1, 6}},
       "parameter int foo_line1 = 0;\n"
       "// verilog_format: off\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "// verilog_format: on\n"
       "parameter int foo_line5 = 0;\n"},
      {// enable all lines, but respect format-off
       "// verilog_format: off\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "// verilog_format: on\n"
       "  parameter    int foo_line5 =     0 ;\n",
       {{1, 6}},
       "// verilog_format: off\n"
       "  parameter    int foo_line2 =     0 ;\n"
       "  parameter    int foo_line3 =     0 ;\n"
       "// verilog_format: on\n"
       "parameter int foo_line5 = 0;\n"},
      {"module m;\n"
       "  if (foo) begin:l1\n"
       "    if (foo) begin:l2\n"
       "      always_comb\n"  // normally this line and next would fit together
       "        d<=#1ps   x_lat\t;\n"  // only format this line, 5
       "    end : l2\n"
       "  end : l1\n"
       "endmodule\n",
       {{5, 6}},
       "module m;\n"
       "  if (foo) begin:l1\n"
       "    if (foo) begin:l2\n"
       "      always_comb\n"  // incremental mode prevents joining next line
       "        d <= #1ps x_lat;\n"  // only this line changed
       "    end : l2\n"
       "  end : l1\n"
       "endmodule\n"},

      // Next three test cases: one whole-file, two incremental
      {"module m(\n"
       "  input wire f,\n"
       "  input  foo::bar  ggg\n"
       ");\n"
       "endmodule:m\n",
       {},  // format all lines
       "module m (\n"
       "    input wire     f,\n"
       "    input foo::bar ggg\n"
       ");\n"
       "endmodule : m\n"},
      {"module m(\n"
       "  input wire f,\n"
       "  input  foo::bar  ggg\n"  // "new line", formatted incrementally
       ");\n"
       "endmodule:m\n",
       {{3, 4}},  // format incrementally
       "module m(\n"
       "  input wire f,\n"
       "    input  foo::bar  ggg\n"  // "new line" remains untouched
       ");\n"
       "endmodule:m\n"},
      {"module m(\n"
       "  input  wire   f,\n"  // "new line", formatted incrementally
       "  input  foo::bar  ggg\n"
       ");\n"
       "endmodule:m\n",
       {{2, 3}},  // format incrementally
       "module m(\n"
       "    input  wire   f,\n"  // "new line" indented, but other spaces kept
       "  input  foo::bar  ggg\n"
       ");\n"
       "endmodule:m\n"},
  };
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status = FormatVerilog(test_case.input, "<filename>", style,
                                      stream, test_case.lines);
    EXPECT_OK(status) << status.message() << '\n'
                      << "Lines: " << test_case.lines;
    EXPECT_EQ(stream.str(), test_case.expected)
        << "code:\n"
        << test_case.input << "\nlines: " << test_case.lines;
  }
}

// These tests verify the mode where horizontal spacing is discarded while
// vertical spacing is preserved.
TEST(FormatterEndToEndTest, PreserveVSpacesOnly) {
  static constexpr FormatterTestCase kTestCases[] = {
      // {input, expected},
      // No tokens cases: still preserve vertical spacing, but not horizontal
      {"", ""},
      {"    ", ""},
      {"\n", "\n"},
      {"\n\n", "\n\n"},
      {"  \n", "\n"},
      {"\n  ", "\n"},
      {"  \n  ", "\n"},
      {"  \n  \t\t\n\t  ", "\n\n"},

      // The remaining cases have at least one non-whitespace token.

      // single comment
      {"//\n", "//\n"},
      {"//  \n", "//  \n"},  // trailing spaces inside comment untouched
      {"\n//\n", "\n//\n"},
      {"\n\n//\n", "\n\n//\n"},
      {"\n//\n\n", "\n//\n\n"},
      {"      //\n", "//\n"},  // spaces before comment discarded
      {"   \n   //\n", "\n//\n"},
      {"   \n   //\n  \n  ", "\n//\n\n"},  // trailing spaces discarded

      // multi-comment
      {"//\n//\n", "//\n//\n"},
      {"\n//\n\n//\n\n", "\n//\n\n//\n\n"},
      {"\n//\n\n//\n", "\n//\n\n//\n"},  // blank line between comments

      // Module cases with token partition boundary (before 'endmodule').
      {"module foo;endmodule\n", "module foo;\nendmodule\n"},
      {"module foo;\nendmodule\n", "module foo;\nendmodule\n"},
      {"module foo;\n\nendmodule\n", "module foo;\n\nendmodule\n"},
      {"\nmodule foo;endmodule\n", "\nmodule foo;\nendmodule\n"},
      {"\nmodule foo     ;    endmodule\n", "\nmodule foo;\nendmodule\n"},
      {"\nmodule\nfoo\n;endmodule\n", "\nmodule foo;\nendmodule\n"},
      {"\nmodule foo;endmodule\n\n\n", "\nmodule foo;\nendmodule\n\n\n"},
      {"\n\n\nmodule foo;endmodule\n", "\n\n\nmodule foo;\nendmodule\n"},
      {"\nmodule\nfoo\n;\n\n\nendmodule\n", "\nmodule foo;\n\n\nendmodule\n"},

      // Module cases with one indented item, various original vertical spacing
      {"module foo;wire w;endmodule\n", "module foo;\n  wire w;\nendmodule\n"},
      {"  module   foo  ;wire    w  ;endmodule  \n  ",
       "module foo;\n  wire w;\nendmodule\n"},
      {"\nmodule\nfoo\n;\nwire\nw\n;endmodule\n\n",
       "\nmodule foo;\n  wire w;\nendmodule\n\n"},
      {"\n\nmodule\nfoo\n;\n\n\nwire\nw\n;\n\nendmodule\n\n",
       "\n\nmodule foo;\n\n\n  wire w;\n\nendmodule\n\n"},

      // The following cases show that some horizontal whitespace is discarded,
      // while vertical spacing is preserved on partition boundaries.
      {"     module  foo\t   \t;    endmodule   \n",
       "module foo;\nendmodule\n"},
      {"\t\n     module  foo\t\t;    endmodule   \n",
       "\nmodule foo;\nendmodule\n"},

      // Module with comments intermingled.
      {
          "//1\nmodule foo;//2\nwire w;//3\n//4\nendmodule\n",
          "//1\nmodule foo;  //2\n  wire w;  //3\n  //4\nendmodule\n"
          // TODO(fangism): whether or not //4 should be indented is
          // questionable (in similar cases below too).
      },
      {// now with extra blank lines
       "//1\n\nmodule foo;//2\n\nwire w;//3\n\n//4\n\nendmodule\n\n",
       "//1\n\nmodule foo;  //2\n\n  wire w;  //3\n\n  //4\n\nendmodule\n\n"},

      {
          // module with comments-only in some empty blocks, properly indented
          "  // humble module\n"
          "  module foo (// non-port comment\n"
          "// port comment 1\n"
          "// port comment 2\n"
          ");// header trailing comment\n"
          "// item comment 1\n"
          "// item comment 2\n"
          "endmodule\n",
          "// humble module\n"
          "module foo (  // non-port comment\n"
          "    // port comment 1\n"
          "    // port comment 2\n"
          ");  // header trailing comment\n"
          "  // item comment 1\n"
          "  // item comment 2\n"
          "endmodule\n",
      },

      {
          // module with comments around non-empty blocks
          "  // humble module\n"
          "  module foo (// non-port comment\n"
          "// port comment 1\n"
          "input   logic   f  \n"
          "// port comment 2\n"
          ");// header trailing comment\n"
          "// item comment 1\n"
          "wire w ; \n"
          "// item comment 2\n"
          "endmodule\n",
          "// humble module\n"
          "module foo (  // non-port comment\n"
          "    // port comment 1\n"
          "    input logic f\n"
          "    // port comment 2\n"
          ");  // header trailing comment\n"
          "  // item comment 1\n"
          "  wire w;\n"
          "  // item comment 2\n"
          "endmodule\n",
      },
  };
  FormatStyle style;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kFormatterTestCasesElseStatements[] = {
    {"module m;"
     "task static t; if (r == t) a.b(c); else d.e(f); endtask;"
     "endmodule",
     "module m;\n"
     "  task static t;\n"
     "    if (r == t) a.b(c);\n"
     "    else d.e(f);\n"
     "  endtask\n"
     "  ;\n"  // possibly unintended stray ';'
     "endmodule\n"},
    {"module m;"
     "task static t; if (r == t) begin a.b(c); end else begin d.e(f); end "
     "endtask;"
     "endmodule",
     "module m;\n"
     "  task static t;\n"
     "    if (r == t) begin\n"
     "      a.b(c);\n"
     "    end else begin\n"
     "      d.e(f);\n"
     "    end\n"
     "  endtask\n"
     "  ;\n"  // stray ';'
     "endmodule\n"},
    {"module m;initial begin if(a==b)"
     "c.d(e);else\n"
     "f.g(h);end endmodule",
     "module m;\n"
     "  initial begin\n"
     "    if (a == b) c.d(e);\n"
     "    else f.g(h);\n"
     "  end\n"
     "endmodule\n"},
    {"   module m;  always_comb    begin     \n"
     "        if      ( a   ) b =  16'hdead    ; \n"
     "  else if (   c     )  d= 16 'hbeef  ;   \n"
     "     else        if (e) f=16'hca_fe ;     \n"
     "end   \n endmodule\n",
     "module m;\n"
     "  always_comb begin\n"
     "    if (a) b = 16'hdead;\n"
     "    else if (c) d = 16'hbeef;\n"
     "    else if (e) f = 16'hca_fe;\n"
     "  end\n"
     "endmodule\n"},
    {"module foo();\n"
     "always_comb begin\n"
     "value = function_name(.long_parameter(8'hA), .parameter_three(foobar));\n"
     "end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(\n"
     "      .long_parameter(8'hA),\n"
     "      .parameter_three(foobar)\n"
     "    );\n"
     "  end\n"
     "endmodule : foo\n"},
    {"module foo();\n"
     "always_comb begin\n"
     "value = function_name(.a(1), .b(2));\n"
     "end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(.a(1), .b(2));\n"
     "  end\n"
     "endmodule : foo\n"},
    {"module foo ();\n"
     "always_comb begin\n"
     "value = function_name(8'hA, foobar, signal_1234); end\n"
     "always_comb begin\n"
     "value = function_name(8'hA, foobar); end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(8'hA, foobar,\n"
     "                          signal_1234);\n"
     "  end\n"
     "  always_comb begin\n"
     "    value = function_name(8'hA, foobar);\n"
     "  end\n"
     "endmodule : foo\n"},
    {"module foo ();\n"
     "always_comb begin\n"
     "value = function_name(8'hA, foobar, signal_1234);\n"
     "value = function_name(8'hA, foobar, signal_1234); end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(8'hA, foobar,\n"
     "                          signal_1234);\n"
     "    value = function_name(8'hA, foobar,\n"
     "                          signal_1234);\n"
     "  end\n"
     "endmodule : foo\n"},
    {"always_comb begin\n"
     "value = "
     "f(long_parameter_exceeding_col_limit, foo, bar); end\n",
     "always_comb begin\n"
     "  value = f(\n"
     "    long_parameter_exceeding_col_limit,\n"
     "    foo,\n"
     "    bar\n"
     "  );\n"
     "end\n"},
    {"module foo();\n"
     "always_comb begin\n"
     "value = function_name(8'hA, .parameter_three(foobar));\n"
     "end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(\n"
     "      8'hA,\n"
     "      .parameter_three(foobar)\n"
     "    );\n"
     "  end\n"
     "endmodule : foo\n"},
    {"module foo ();\n"
     "always_comb begin\n"
     "value = function_name(8'hA, 8'hB, 8'hC, .parameter_four(foo), "
     ".par_five(bar));\n"
     "end\n"
     "endmodule : foo\n",
     "module foo ();\n"
     "  always_comb begin\n"
     "    value = function_name(\n"
     "      8'hA,\n"
     "      8'hB,\n"
     "      8'hC,\n"
     "      .parameter_four(foo),\n"
     "      .par_five(bar)\n"
     "    );\n"
     "  end\n"
     "endmodule : foo\n"},
    {"class dv_base_mem; function void configure(); \nbegin\n"
     "value = func(8'hA, foobar, signal_1234);\n"
     "value = new(8'hA, foobar, signal_1234); end\n"
     "endfunction : configure endclass\n",
     "class dv_base_mem;\n"
     "  function void configure();\n"
     "    begin\n"
     "      value = func(8'hA, foobar,\n"
     "                   signal_1234);\n"
     "      value = new(8'hA, foobar,\n"
     "                  signal_1234);\n"
     "    end\n"
     "  endfunction : configure\n"
     "endclass\n"},
    {"module m; initial begin\n"
     "        if     (a||b)        c         = 1'b1;\n"
     "d =        1'b1; if         (e)\n"
     "begin f = 1'b0; end else begin\n"
     "    g = h;\n"
     "        end \n"
     " i = 1'b1; "
     "end endmodule\n",
     "module m;\n"
     "  initial begin\n"
     "    if (a || b) c = 1'b1;\n"
     "    d = 1'b1;\n"
     "    if (e) begin\n"
     "      f = 1'b0;\n"
     "    end else begin\n"
     "      g = h;\n"
     "    end\n"
     "    i = 1'b1;\n"
     "  end\n"
     "endmodule\n"},
    {"module m; initial begin\n"
     "if (a&&b&&c) begin\n"
     "         d         = 1'b1;\n"
     "     if (e) begin\n"
     "   f = ff;\n"
     "       end  else   if  (    g  )   begin\n"
     "     h = hh;\n"
     "end else if (i) begin\n"
     "    j   =   (kk == ll) ? mm :\n"
     "      gg;\n"
     "   end     else   if    (  qq )  begin\n"
     "    if      (  xx   ||yy        ) begin    d0 = 1'b0;   d1   =       "
     "1'b1;\n"
     "  end else if (oo) begin aa =    bb; cc      = dd;"
     "         if (zz) zx = xz; else ba = ab;"
     "    end   else  \n begin      vv   =  tt  ;  \n"
     "   end   end "
     "end \n  else if   (uu)\nbegin\n\na=b;if (aa)   b =    c;\n"
     "\nelse    if    \n (bb) \n\nc        =d    ;\n\n\n\n\n    "
     "      else         e\n\n   =   h;\n\n"
     "end \n  else    \n  begin if(x)y=a;else\nbegin\n"
     "\n\n\na=y; if (a)       b     = c;\n\n\n\nelse\n\n\nd=e;end \n"
     "end\n"
     "end endmodule\n",
     "module m;\n"
     "  initial begin\n"
     "    if (a && b && c) begin\n"
     "      d = 1'b1;\n"
     "      if (e) begin\n"
     "        f = ff;\n"
     "      end else if (g) begin\n"
     "        h = hh;\n"
     "      end else if (i) begin\n"
     "        j = (kk == ll) ? mm : gg;\n"
     "      end else if (qq) begin\n"
     "        if (xx || yy) begin\n"
     "          d0 = 1'b0;\n"
     "          d1 = 1'b1;\n"
     "        end else if (oo) begin\n"
     "          aa = bb;\n"
     "          cc = dd;\n"
     "          if (zz) zx = xz;\n"
     "          else ba = ab;\n"
     "        end else begin\n"
     "          vv = tt;\n"
     "        end\n"
     "      end\n"
     "    end else if (uu) begin\n\n"
     "      a = b;\n"
     "      if (aa) b = c;\n\n"
     "      else if (bb) c = d;\n\n\n\n\n"
     "      else e = h;\n\n"
     "    end else begin\n"
     "      if (x) y = a;\n"
     "      else begin\n\n\n\n"
     "        a = y;\n"
     "        if (a) b = c;\n\n\n\n"
     "        else d = e;\n"
     "      end\n"
     "    end\n"
     "  end\n"
     "endmodule\n"}};

TEST(FormatterEndToEndTest, FormatElseStatements) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterTestCasesElseStatements) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, ConstraintExpressions) {
  static constexpr FormatterTestCase kTestCases[] = {
      {"", ""},

      // class members
      {"class Foo; constraint if_c { if (zzzzzzzzzzzzzzzzzzzzz)"
       "{ soft xxxxxxxxxxxxxxxxxxxxxx == yyyyyyyyyyyyyyyyyyy; } } endclass",
       "class Foo;\n"
       "  constraint if_c {\n"
       "    if (zzzzzzzzzzzzzzzzzzzzz) {\n"
       "      soft xxxxxxxxxxxxxxxxxxxxxx == yyyyyyyyyyyyyyyyyyy;\n"
       "    }\n"
       "  }\n"
       "endclass\n"},

      // constraints with if-constraint expressions
      {"constraint xx { if (a) b; }\n", "constraint xx {if (a) b;}\n"},

      {"constraint xx { if (a) {b;} }\n",
       "constraint xx {\n"
       "  if (a) {\n"
       "    b;\n"
       "  }\n"
       "}\n"},

      // multi item constraint
      {"constraint yy { a == b;c==d;}",
       "constraint yy {\n"
       "  a == b;\n"
       "  c == d;\n"
       "}\n"},

      // one-line constraints
      {"constraint only_vec_instr_c {soft only_vec_instr == 0;}",
       "constraint only_vec_instr_c {soft only_vec_instr == 0;}\n"},

      {"constraint\nnum_trans_c\n\n\n{\n\n\nnum_trans inside{[800:1000]};}",
       "constraint num_trans_c {num_trans inside {[800 : 1000]};}\n"},

      // if-vs-concatenation expression
      {"constraint c_operation{  if(fixed_operation_en){"
       "aes_operation == fixed_operation"
       ";}}",
       "constraint c_operation {\n"
       "  if (fixed_operation_en) {\n"
       "    aes_operation == fixed_operation;\n"
       "  }\n"
       "}\n"},

      {"constraint c_operation{  if(fixed_operation_en){"
       "aes_operation == fixed_operation"
       "};}",
       "constraint c_operation {\n"
       "  if (fixed_operation_en)\n"
       "  {aes_operation == fixed_operation};\n"
       "}\n"},

      // concatenation expression
      {"constraint c_iv {if (fixed_iv_en) {aes_iv == fixed_iv};}",
       "constraint c_iv {\n"
       "  if (fixed_iv_en)\n"
       "  {aes_iv == fixed_iv};\n"
       "}\n"},

      // looooong test
      {"constraint xx {"
       "if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)"
       "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=="
       "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;"
       "ccccccccccccccccccccccc==dddddddddddddddddddddd;}",
       "constraint xx {\n"
       "  if (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
       "  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa == "
       "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;\n"
       "  ccccccccccccccccccccccc == dddddddddddddddddddddd;\n"
       "}\n"},
  };
  FormatStyle style;
  style.column_limit =
      100;  // smaller column_limit forces expansion of constraint blocks
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.port_declarations_alignment = verible::AlignmentPolicy::kPreserve;
  for (const auto& test_case : kTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kFormatterTestCasesEnumDeclarations[] = {
    // Inferring user intent: not too many spaces to be added: align.
    {"typedef enum { kA=1, kAB=2, kABC=3} x;",
     "typedef enum {\n"
     "  kA   = 1,\n"
     "  kAB  = 2,\n"
     "  kABC = 3\n} x;\n"},

    // Lots of spaces would've to be be added - keep flush
    {"typedef enum { kA=1, kAB=2, kABCDEFGHIJKLMN=3} x;",
     "typedef enum {\n"
     "  kA = 1,\n"
     "  kAB = 2,\n"
     "  kABCDEFGHIJKLMN = 3\n} x;\n"},

    // Source spaces indicate alignment wish.
    {"typedef enum { kA     =1, kAB=2, kABCDEFGHIJKLMN=3} x;",
     "typedef enum {\n"
     "  kA              = 1,\n"
     "  kAB             = 2,\n"
     "  kABCDEFGHIJKLMN = 3\n} x;\n"},

    // An empty line groups into several sections, to be aligned independently
    {"typedef enum { kA=1, kAB=2, \n\n kABC=3} x;",
     "typedef enum {\n"
     "  kA  = 1,\n"
     "  kAB = 2,\n"
     "\n"
     "  kABC = 3\n} x;\n"},

    // Lines with comments don't interrupt alignment
    {"typedef enum { kA=1,\n"
     "// hello world\n"
     "kAB=2, kABC=3} x;",
     "typedef enum {\n"
     "  kA   = 1,\n"
     "  // hello world\n"
     "  kAB  = 2,\n"
     "  kABC = 3\n} x;\n"},

    // Generally, comment locations are preserved, and full line comments
    // indented to enum name level.
    {"typedef enum { kA=1,// value kA\n"
     "// hello world\n"
     "kAB=2,// value kAB\n"
     "kABC=3// value kABC\n"
     "} x;",
     "typedef enum {\n"
     "  kA   = 1,  // value kA\n"
     "  // hello world\n"
     "  kAB  = 2,  // value kAB\n"
     "  kABC = 3   // value kABC"
     "\n} x;\n"},

    {"typedef enum { kA=1,// value kA\n"
     "kAB=2,\n"
     "kABC=3// value kABC\n"
     "} x;",
     "typedef enum {\n"
     "  kA   = 1,  // value kA\n"
     "  kAB  = 2,\n"
     "  kABC = 3   // value kABC"
     "\n} x;\n"},

    // Numeric constants are currently flushed left, but maybe todo
    // align right in the future ?
    {"typedef enum { kA=1, kAB=10, kABC=100} x;",
     "typedef enum {\n"
     "  kA   = 1,\n"
     "  kAB  = 10,\n"
     "  kABC = 100\n} x;\n"},
};

TEST(FormatterEndToEndTest, FormatAlignEnumDeclarations) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.enum_assignment_statement_alignment = AlignmentPolicy::kInferUserIntent;
  for (const auto& test_case : kFormatterTestCasesEnumDeclarations) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

TEST(FormatterEndToEndTest, DiagnosticShowFullTree) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterTestCases) {
    std::ostringstream stream, debug_stream;
    ExecutionControl control;
    control.stream = &debug_stream;
    control.show_token_partition_tree = true;
    const auto status = FormatVerilog(test_case.input, "<filename>", style,
                                      stream, kEnableAllLines, control);
    EXPECT_EQ(status.code(), StatusCode::kCancelled);
    EXPECT_TRUE(
        absl::StartsWith(debug_stream.str(), "Full token partition tree"));
  }
}

TEST(FormatterEndToEndTest, DiagnosticLargestPartitions) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterTestCases) {
    std::ostringstream stream, debug_stream;
    ExecutionControl control;
    control.stream = &debug_stream;
    control.show_largest_token_partitions = 2;
    const auto status = FormatVerilog(test_case.input, "<filename>", style,
                                      stream, kEnableAllLines, control);
    EXPECT_EQ(status.code(), StatusCode::kCancelled);
    EXPECT_TRUE(absl::StartsWith(debug_stream.str(), "Showing the "))
        << "got: " << debug_stream.str();
  }
}

TEST(FormatterEndToEndTest, DiagnosticEquallyOptimalWrappings) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  for (const auto& test_case : kFormatterTestCases) {
    std::ostringstream stream, debug_stream;
    ExecutionControl control;
    control.stream = &debug_stream;
    control.show_equally_optimal_wrappings = true;
    const auto status = FormatVerilog(test_case.input, "<filename>", style,
                                      stream, kEnableAllLines, control);
    EXPECT_OK(status) << status.message();
    if (!debug_stream.str().empty()) {
      EXPECT_TRUE(absl::StartsWith(debug_stream.str(), "Showing the "))
          << "got: " << debug_stream.str();
      // Cannot guarantee among unit tests that there will be >1 solution.
    }
  }
}

// Test that hitting search space limit results in correct error status.
TEST(FormatterEndToEndTest, UnfinishedLineWrapSearching) {
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  const absl::string_view code("parameter int x = 1+1;\n");

  std::ostringstream stream, debug_stream;
  ExecutionControl control;
  control.max_search_states = 2;  // Cause search to abort early.
  control.stream = &debug_stream;
  const auto status = FormatVerilog(code, "<filename>", style, stream,
                                    kEnableAllLines, control);
  EXPECT_EQ(status.code(), StatusCode::kResourceExhausted);
  EXPECT_TRUE(absl::StartsWith(status.message(), "***"));
}

static constexpr FormatterTestCase kOnelineFormatBaselineTestCases[] = {
    // Reference - following test cases should not be affected by the switch
    {// Minimal useful case
     "covergroup c @ (posedge clk); coverpoint a; endgroup\n",
     "covergroup c @(posedge clk);\n"
     "  coverpoint a;\n"
     "endgroup\n"},
    {// Multiple coverpoints
     "covergroup foo @(posedge clk); coverpoint a; coverpoint b; "
     "coverpoint c; coverpoint d; endgroup\n",
     "covergroup foo @(posedge clk);\n"
     "  coverpoint a;\n"
     "  coverpoint b;\n"
     "  coverpoint c;\n"
     "  coverpoint d;\n"
     "endgroup\n"},
    {// Multiple bins
     "covergroup memory @ (posedge ce); address  :coverpoint addr {"
     "bins low={LOW}; bins high={HIGH};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  address: coverpoint addr {\n"
     "    bins low = {LOW};\n"
     "    bins high = {HIGH};\n"
     "  }\n"
     "endgroup\n"},
    {// Multiple bins with multiple elements
     "covergroup memory @ (posedge ce); address  :coverpoint addr {"
     "bins low={0,127}; bins high={128,255};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  address: coverpoint addr {\n"
     "    bins low = {0, 127};\n"
     "    bins high = {128, 255};\n"
     "  }\n"
     "endgroup\n"},
};

// Tests that constructs that could be formatted as one-liners are formatted
// correctly. This is the baseline test with default style, test cases should
// not be affected by the setting.
TEST(FormatterEndToEndTest, OnelineFormatBaselineTest) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.expand_coverpoints = false;
  for (const auto& test_case : kOnelineFormatBaselineTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
  // Test again with the switch, should not affect formatting
  style.expand_coverpoints = true;
  for (const auto& test_case : kOnelineFormatBaselineTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

// Following two test sets are affected by the expand_coverponits switch
// They should contain corresponding test cases
static constexpr FormatterTestCase kOnelineFormatReferenceTestCases[] = {
    {// Coverpoint that could fit on one line
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={0};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {bins l = {0};}\n"
     "endgroup\n"},
    {// Fit with a reference
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={LOW};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {bins l = {LOW};}\n"
     "endgroup\n"},
    {// Fit with multiple elements
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={0,8};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {bins l = {0, 8};}\n"
     "endgroup\n"},
};

static constexpr FormatterTestCase kOnelineFormatExpandTestCases[] = {
    {// Coverpoint that could fit on one line
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={0};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {\n"
     "    bins l = {0};\n"
     "  }\n"
     "endgroup\n"},
    {// Fit with a reference
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={LOW};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {\n"
     "    bins l = {LOW};\n"
     "  }\n"
     "endgroup\n"},
    {// Fit with multiple elements
     "covergroup memory @ (posedge ce); a :coverpoint d {"
     "bins l={0,8};} endgroup\n",
     "covergroup memory @(posedge ce);\n"
     "  a: coverpoint d {\n"
     "    bins l = {0, 8};\n"
     "  }\n"
     "endgroup\n"},
};

TEST(FormatterEndToEndTest, OnelineFormatReferenceTest) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.expand_coverpoints = false;

  for (const auto& test_case : kOnelineFormatReferenceTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

// Tests that constructs that could be formatted as one-liners are expanded
// correctly. This is the baseline test with default style
TEST(FormatterEndToEndTest, OnelineFormatExpandTest) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;
  style.expand_coverpoints = true;

  for (const auto& test_case : kOnelineFormatExpandTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

struct DimensionsAlignmentTestCase {
  absl::string_view input;
  absl::string_view expected[4];
};

static constexpr DimensionsAlignmentTestCase
    kPortDeclarationDimensionsAlignmentTestCases[] = {
        {"import \"DPI-C\" context function void func(\n"
         "input bit foo,\n"
         "input bit [2] foobar,\n"
         "input bit [24:16] bar,\n"
         "input bit [2:0][31:0] baz,\n"
         "input bit [4][24:0][16:0] foobarbaz[],\n"
         "input bit [FOOBAZ][31:24] qux[16],\n"
         "input bit [16] quux[8:2][16][32],\n"
         "output bit [2:0][2:0][2:0] quuz[8][16:12]\n"
         ");\n",
         {
             "import \"DPI-C\" context function void func(\n"
             "  input  bit                       foo,\n"
             "  input  bit [     2]              foobar,\n"
             "  input  bit [ 24:16]              bar,\n"
             "  input  bit [   2:0][ 31:0]       baz,\n"
             "  input  bit [     4][ 24:0][16:0] foobarbaz[   ],\n"
             "  input  bit [FOOBAZ][31:24]       qux      [ 16],\n"
             "  input  bit [    16]              quux     [8:2][   16][32],\n"
             "  output bit [   2:0][  2:0][ 2:0] quuz     [  8][16:12]\n"
             ");\n",
             "import \"DPI-C\" context function void func(\n"
             "  input  bit                       foo,\n"
             "  input  bit [     2]              foobar,\n"
             "  input  bit [ 24:16]              bar,\n"
             "  input  bit [   2:0][ 31:0]       baz,\n"
             "  input  bit [     4][ 24:0][16:0] foobarbaz         [     ],\n"
             "  input  bit [FOOBAZ][31:24]       qux               [   16],\n"
             "  input  bit [    16]              quux     [8:2][16][   32],\n"
             "  output bit [   2:0][  2:0][ 2:0] quuz          [ 8][16:12]\n"
             ");\n",
             "import \"DPI-C\" context function void func(\n"
             "  input  bit                      foo,\n"
             "  input  bit              [    2] foobar,\n"
             "  input  bit              [24:16] bar,\n"
             "  input  bit      [   2:0][ 31:0] baz,\n"
             "  input  bit [  4][  24:0][ 16:0] foobarbaz[   ],\n"
             "  input  bit      [FOOBAZ][31:24] qux      [ 16],\n"
             "  input  bit              [   16] quux     [8:2][   16][32],\n"
             "  output bit [2:0][   2:0][  2:0] quuz     [  8][16:12]\n"
             ");\n",
             "import \"DPI-C\" context function void func(\n"
             "  input  bit                      foo,\n"
             "  input  bit              [    2] foobar,\n"
             "  input  bit              [24:16] bar,\n"
             "  input  bit      [   2:0][ 31:0] baz,\n"
             "  input  bit [  4][  24:0][ 16:0] foobarbaz         [     ],\n"
             "  input  bit      [FOOBAZ][31:24] qux               [   16],\n"
             "  input  bit              [   16] quux     [8:2][16][   32],\n"
             "  output bit [2:0][   2:0][  2:0] quuz          [ 8][16:12]\n"
             ");\n",
         }},
        {"module m(\n"
         "output bit [2:0][2:0][2:0] quuz[8][16:12],\n"
         "input bit [16] quux[8:2][16][32],\n"
         "input bit [FOOBAZ][31:24] qux[16],\n"
         "input bit [4][24:0][16:0] foobaz[],\n"
         "input bit [2:0][31:0] baz,\n"
         "input bit [24:16] bar,\n"
         "input bit [2] foobar,\n"
         "input bit foo\n"
         "); endmodule:m\n",
         {
             "module m (\n"
             "    output bit [   2:0][  2:0][ 2:0] quuz  [  8][16:12],\n"
             "    input  bit [    16]              quux  [8:2][   16][32],\n"
             "    input  bit [FOOBAZ][31:24]       qux   [ 16],\n"
             "    input  bit [     4][ 24:0][16:0] foobaz[   ],\n"
             "    input  bit [   2:0][ 31:0]       baz,\n"
             "    input  bit [ 24:16]              bar,\n"
             "    input  bit [     2]              foobar,\n"
             "    input  bit                       foo\n"
             ");\n"
             "endmodule : m\n",
             "module m (\n"
             "    output bit [   2:0][  2:0][ 2:0] quuz       [ 8][16:12],\n"
             "    input  bit [    16]              quux  [8:2][16][   32],\n"
             "    input  bit [FOOBAZ][31:24]       qux            [   16],\n"
             "    input  bit [     4][ 24:0][16:0] foobaz         [     ],\n"
             "    input  bit [   2:0][ 31:0]       baz,\n"
             "    input  bit [ 24:16]              bar,\n"
             "    input  bit [     2]              foobar,\n"
             "    input  bit                       foo\n"
             ");\n"
             "endmodule : m\n",
             "module m (\n"
             "    output bit [2:0][   2:0][  2:0] quuz  [  8][16:12],\n"
             "    input  bit              [   16] quux  [8:2][   16][32],\n"
             "    input  bit      [FOOBAZ][31:24] qux   [ 16],\n"
             "    input  bit [  4][  24:0][ 16:0] foobaz[   ],\n"
             "    input  bit      [   2:0][ 31:0] baz,\n"
             "    input  bit              [24:16] bar,\n"
             "    input  bit              [    2] foobar,\n"
             "    input  bit                      foo\n"
             ");\n"
             "endmodule : m\n",
             "module m (\n"
             "    output bit [2:0][   2:0][  2:0] quuz       [ 8][16:12],\n"
             "    input  bit              [   16] quux  [8:2][16][   32],\n"
             "    input  bit      [FOOBAZ][31:24] qux            [   16],\n"
             "    input  bit [  4][  24:0][ 16:0] foobaz         [     ],\n"
             "    input  bit      [   2:0][ 31:0] baz,\n"
             "    input  bit              [24:16] bar,\n"
             "    input  bit              [    2] foobar,\n"
             "    input  bit                      foo\n"
             ");\n"
             "endmodule : m\n",
         }},
};

TEST(FormatterEndToEndTest, PortDeclarationDimensionsAlignmentTest) {
  FormatStyle style;
  style.column_limit = 64;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  // All combinations of port_declaration_right_align_{un,}packed_dimensions
  static const bool right_align_combinations[][2] = {
      {false, false}, {false, true}, {true, false}, {true, true}};

  for (const auto& test_case : kPortDeclarationDimensionsAlignmentTestCases) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    size_t expected_index = 0;
    for (const auto& right_align : right_align_combinations) {
      VLOG(1) << "style variant:\n"
              << "port_declarations_right_align_packed_dimensions: "
              << right_align[0] << "\n"
              << "port_declarations_right_align_unpacked_dimensions: "
              << right_align[1] << "\n";
      style.port_declarations_right_align_packed_dimensions = right_align[0];
      style.port_declarations_right_align_unpacked_dimensions = right_align[1];

      std::ostringstream stream;

      const auto status =
          FormatVerilog(test_case.input, "<filename>", style, stream);
      // Require these test cases to be valid.
      EXPECT_OK(status) << status.message();
      EXPECT_EQ(stream.str(), test_case.expected[expected_index++])
          << "code:\n"
          << test_case.input;
    }
  }
}

// TODO(fangism): directed tests using style variations

static constexpr FormatterTestCase kNestedFunctionsTestCases40ColumnsLimit[] = {
    {"module foo;"
     "`uvm_info(`gfn, $sformatf(\n"
     "\"\\n  base_vseq: generate %0d pulse in channel %0d\", cfg.num_pulses, "
     "i), UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(\n"
     "      `gfn,\n"
     "      $sformatf(\n"
     "          \"\\n  base_vseq: generate %0d pulse in channel %0d\",\n"
     "          cfg.num_pulses, i), UVM_DEBUG)\n"
     "endmodule\n"},
    {"module foo;`uvm_info(`gfn, $sformatf("
     "\"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\","
     "cfg.convert2string()), UVM_LOW)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(\n"
     "      `gfn,\n"
     "      $sformatf(\n"
     "          \"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\",\n"
     "          cfg.convert2string()),\n"
     "      UVM_LOW)\n"  // FIXME: Wrapped by SearchLineWraps
     "endmodule\n"},
};

TEST(FormatterEndToEndTest, FormatNestedFunctionsTestCases40ColumnsLimit) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 40;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  for (const auto& test_case : kNestedFunctionsTestCases40ColumnsLimit) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kNestedFunctionsTestCases60ColumnsLimit[] = {
    {"module foo;"
     "`uvm_info(`gfn, $sformatf(\n"
     "\"\\n  base_vseq: generate %0d pulse in channel %0d\", cfg.num_pulses, "
     "i), UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(\n"
     "      `gfn,\n"
     "      $sformatf(\n"
     "          \"\\n  base_vseq: generate %0d pulse in channel %0d\",\n"
     "          cfg.num_pulses, i), UVM_DEBUG)\n"
     "endmodule\n"},
    {"module foo;`uvm_info(`gfn, $sformatf("
     "\"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\","
     "cfg.convert2string()), UVM_LOW)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(\n"
     "      `gfn,\n"
     "      $sformatf(\n"
     "          \"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\",\n"
     "          cfg.convert2string()), UVM_LOW)\n"
     "endmodule\n"},
};

TEST(FormatterEndToEndTest, FormatNestedFunctionsTestCases60ColumnsLimit) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 60;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  for (const auto& test_case : kNestedFunctionsTestCases60ColumnsLimit) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kNestedFunctionsTestCases80ColumnsLimit[] = {
    {"module foo;"
     "`uvm_info(`gfn, $sformatf(\n"
     "\"\\n  base_vseq: generate %0d pulse in channel %0d\", cfg.num_pulses, "
     "i), UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, $sformatf(\"\\n  base_vseq: generate %0d pulse in "
     "channel %0d\",\n"
     "                            cfg.num_pulses, i), UVM_DEBUG)\n"
     "endmodule\n"},
    {"module foo;`uvm_info(`gfn, $sformatf("
     "\"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\","
     "cfg.convert2string()), UVM_LOW)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, $sformatf(\n"
     "                      \"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE "
     "|----\\n %s\",\n"
     "                      cfg.convert2string()), UVM_LOW)\nendmodule\n"},
    {"module x;"
     "`uvm_fatal(`gfn, $sformatf("
     "\"The data 0x%0h written to the signature address is formatted "
     "incorrectly.\","
     "signature_data))\n"
     "endmodule",
     "module x;\n"
     "  `uvm_fatal(\n"
     "      `gfn,\n"
     "      $sformatf(\n"
     "          \"The data 0x%0h written to the signature address is formatted "
     "incorrectly.\",\n"
     "          signature_data))\n"
     "endmodule\n"},
};

TEST(FormatterEndToEndTest, FormatNestedFunctionsTestCases80ColumnsLimit) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 80;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  for (const auto& test_case : kNestedFunctionsTestCases80ColumnsLimit) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kNestedFunctionsTestCases100ColumnsLimit[] =
    {
        {"module foo;"
         "`uvm_info(`gfn, $sformatf(\n"
         "\"\\n  base_vseq: generate %0d pulse in channel %0d\", "
         "cfg.num_pulses, i), UVM_DEBUG)\n"
         "endmodule",
         "module foo;\n"
         "  `uvm_info(`gfn, $sformatf(\"\\n  base_vseq: generate %0d pulse in "
         "channel %0d\", cfg.num_pulses, i),\n"
         "            UVM_DEBUG)\n"
         "endmodule\n"},
        {"module foo;`uvm_info(`gfn, $sformatf("
         "\"\\n\\n\\t ----| STARTING AES MAIN SEQUENCE |----\\n %s\","
         "cfg.convert2string()), UVM_LOW)\n"
         "endmodule",
         "module foo;\n"
         "  `uvm_info(`gfn, $sformatf(\"\\n\\n\\t ----| STARTING AES MAIN "
         "SEQUENCE |----\\n %s\",\n"
         "                            cfg.convert2string()), UVM_LOW)\n"
         "endmodule\n"},
        {"module x;"
         "`uvm_fatal(`gfn, $sformatf("
         "\"The data 0x%0h written to the signature address is formatted "
         "incorrectly.\","
         "signature_data))\n"
         "endmodule",
         "module x;\n"
         "  `uvm_fatal(`gfn, $sformatf(\n"
         "                       \"The data 0x%0h written to the signature "
         "address is formatted incorrectly.\",\n"
         "                       signature_data))\n"
         "endmodule\n"},
        {// nested modules, three-levels
         "module x; module y; module z;"
         "`uvm_fatal(`gfn, $sformatf("
         "\"The data 0x%0h written to the signature address is formatted "
         "incorrectly.\","
         "signature_data))\n"
         "endmodule endmodule endmodule",
         "module x;\n"
         "  module y;\n"
         "    module z;\n"
         "      `uvm_fatal(`gfn,\n"
         "                 $sformatf(\n"
         "                     \"The data 0x%0h written to the signature "
         "address is formatted incorrectly.\",\n"
         "                     signature_data))\n"
         "    endmodule\n"
         "  endmodule\n"
         "endmodule\n"},
};

TEST(FormatterEndToEndTest, FormatNestedFunctionsTestCases100ColumnsLimit) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 100;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  for (const auto& test_case : kNestedFunctionsTestCases100ColumnsLimit) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

static constexpr FormatterTestCase kFunctionCallsWithComments[] = {
    {// no comments
     "module foo;\n"
     "`uvm_info(`gfn, \"xx\",\n"
     "cfg.num_pulses, i, UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, \"xx\", cfg.num_pulses, i, UVM_DEBUG)\n"
     "endmodule\n"},
    {// one comment
     "module foo;\n"
     "`uvm_info(`gfn, \"xx\",  // yy\n"
     "cfg.num_pulses, i, UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, \"xx\",  // yy\n"
     "            cfg.num_pulses, i, UVM_DEBUG)\n"
     "endmodule\n"},
    {// two comments
     "module foo;\n"
     "`uvm_info(`gfn, \"xx\",  "
     "    cfg.num_pulses, // xx\n"
     " i, UVM_DEBUG)// uuu\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, \"xx\", cfg.num_pulses,  // xx\n"
     "            i, UVM_DEBUG)  // uuu\n"
     "endmodule\n"},

    {// nested function calls with comments
     "module foo;"
     "`uvm_info(`gfn, $sformatf(\"\\n  base_vseq: generate %0d"
     " pulse in channel %0d\", cfg.num_pulses, // comment\n"
     " i), UVM_DEBUG)\n"
     "endmodule",
     "module foo;\n"
     "  `uvm_info(`gfn, $sformatf(\"\\n  base_vseq: generate %0d pulse in "
     "channel %0d\",\n"
     "                            cfg.num_pulses,  // comment\n"
     "                            i), UVM_DEBUG)\n"
     "endmodule\n"},
};

TEST(FormatterEndToEndTest, FunctionCallsWithComments) {
  // Use a fixed style.
  FormatStyle style;
  style.column_limit = 100;
  style.indentation_spaces = 2;
  style.wrap_spaces = 4;

  for (const auto& test_case : kFunctionCallsWithComments) {
    VLOG(1) << "code-to-format:\n" << test_case.input << "<EOF>";
    std::ostringstream stream;
    const auto status =
        FormatVerilog(test_case.input, "<filename>", style, stream);
    // Require these test cases to be valid.
    EXPECT_OK(status) << status.message();
    EXPECT_EQ(stream.str(), test_case.expected) << "code:\n" << test_case.input;
  }
}

// Extracts the first non-whitespace token and prepends it with number of
// of newlines seen in front of it. So "\n \n\n  foo" -> "3foo"
std::string NLCountAndfirstWord(absl::string_view str) {
  std::string result;
  int newline_count = 0;
  const char* begin = str.begin();
  for (/**/; begin < str.end(); ++begin) {
    if (!isspace(*begin)) break;
    newline_count += (*begin == '\n');
  }
  // Emit number of newlines seen up to first token.
  result.append(1,
                static_cast<char>(newline_count + '0'));  // single digit itoa
  const char* end_str = begin;
  for (/**/; end_str < str.end() && !isspace(*end_str); ++end_str)
    ;
  result.append(begin, end_str);
  return result;
}

// Similar to NLCountAndfirstWord() but looking at the last token and trailing
// newlines.
std::string lastWordAndNLCount(absl::string_view str) {
  std::string result;
  int newline_count = 0;
  const char* back = str.end() - 1;
  for (/**/; back >= str.begin(); --back) {
    if (!isspace(*back)) break;
    newline_count += (*back == '\n');
  }

  const char* start_str = back;
  for (/**/; start_str >= str.begin() && !isspace(*start_str); --start_str)
    ;
  result.append(start_str + 1, back - start_str);
  // Emit number of newlines seen following last token.
  result.append(1,
                static_cast<char>(newline_count + '0'));  // single digit itoa
  return result;
}

// Testing the tester...
TEST(FormatterTestInternal, TokenExtractorAndLineCounterTestFixtureTest) {
  absl::string_view str = "\n \nhello world \n \n";
  ASSERT_EQ(NLCountAndfirstWord(str), "2hello");
  ASSERT_EQ(NLCountAndfirstWord(str.substr(1)), "1hello");
  ASSERT_EQ(NLCountAndfirstWord(str.substr(3)), "0hello");

  ASSERT_EQ(lastWordAndNLCount(str), "world2");
  ASSERT_EQ(lastWordAndNLCount(str.substr(0, str.length() - 1)), "world1");
  ASSERT_EQ(lastWordAndNLCount(str.substr(0, str.length() - 2)), "world1");
  ASSERT_EQ(lastWordAndNLCount(str.substr(0, str.length() - 3)), "world0");

  str = "aworld \n \n";  // Make sure to not overshoot begin.
  ASSERT_EQ(lastWordAndNLCount(str.substr(1)), "world2");
}

TEST(FormatterEndToEndTest, RangeFormattingOnlyEmittingRelevantLines) {
  // Including some empty lines to make sure the formatting
  static constexpr absl::string_view unformatted =
      R"(     module foo (// non-port comment

     // some comment

  input  logic  a, input logic  b,input bit [2]
foobar, input    bit [4] foobaz,
    input bit [2]    quux


        ); endmodule
)";

  std::vector<absl::string_view> lines = absl::StrSplit(unformatted, '\n');
  const int kLineCount = lines.size();

  FormatStyle style;

  // Go through all possible sub-ranges, format these, and compare that the
  // output of the range output is contained inside the full format given the
  // same sub-range.
  for (int start_line = 0; start_line < kLineCount; ++start_line) {
    for (int end_line = start_line; end_line < kLineCount; ++end_line) {
      // Line numbers are 1-index based.
      const verible::Interval<int> range = {start_line + 1, end_line + 1};

      // Format full text for reference
      std::ostringstream full_format;
      absl::Status status =
          FormatVerilog(unformatted, "<filename>", style, full_format, {range});
      EXPECT_OK(status) << status.message();

      // To test: range formatted.
      std::string range_formatted;
      status = FormatVerilogRange(unformatted, "<filename>", style,
                                  &range_formatted, range);
      EXPECT_OK(status) << status.message();
      if (range.empty()) {  // Nothing to format: expect empty output.
        EXPECT_TRUE(range_formatted.empty());
        continue;
      }

      // Area we cover in the input (include the final newline);
      const auto source_begin = lines[start_line].begin();
      const auto source_end = lines[end_line - 1].end() + 1;  // include \n
      const absl::string_view range_unformatted(source_begin,
                                                source_end - source_begin);

      // To compare that we indeed formatted the requested reqgion, we make
      // sure that the first and last token (simplified: non-whitespace word)
      // in the input of the range to be formatted is
      // exactly the first and last token that comes out of the range
      // formatted snippet.
      //
      // While the whitespace might be different at the beginning and end
      // due to formatting, the number of _newlines_ at the beginning and end
      // should be the same, so we include the newline count in the comparison.

      EXPECT_EQ(NLCountAndfirstWord(range_unformatted),
                NLCountAndfirstWord(range_formatted))
          << "'" << range_unformatted << "' vs. '" << range_formatted << "'";

      // ... same for the last word.
      EXPECT_EQ(lastWordAndNLCount(range_unformatted),
                lastWordAndNLCount(range_formatted))
          << "'" << range_unformatted << "' vs. '" << range_formatted << "'";

      EXPECT_LE(range_formatted.length(), full_format.str().length());
      EXPECT_THAT(full_format.str(), HasSubstr(range_formatted));
    }
  }
}

// Creates a string_view spanning a whole string literal.
// Works correctly with strings containing null bytes.
template <std::size_t N>
constexpr absl::string_view string_view_from_literal(const char (&s)[N]) {
  return absl::string_view(s, N - 1);
}

// The following regressions have been found by a fuzzer, so the input might
// look a bit 'funny'. Nevertheless, they expose real bugs in the code.

[[maybe_unused]] void TestForNonCrash(absl::string_view input) {
  using verible::EscapeString;
  FormatStyle style;
  std::ostringstream stream;
  const auto status = FormatVerilog(input, "<filename>", style, stream);
  // If we are here, we did at least not crash, which is all we desire for
  // the fuzzer tests.
  // Other issues that are reported correctly (probably due to strange inputs
  // generated by the fuzzer) are ok, so we just log them here FYI.
  if (!status.ok()) {
    LOG(INFO) << "No crash, but format failed for other reason: "
              << status.message() << "\nEscaped input: \""
              << EscapeString(input) << "\"";
  }
}

#if 0
// https://github.com/chipsalliance/verible/issues/1381
TEST(FormatterEndToEndTest, FuzzingRegression_1381) {
  TestForNonCrash(string_view_from_literal("P#(\0\0//\0//\0,);"));
  TestForNonCrash(string_view_from_literal("P#(\0\0//\0,,//\0,"));
}
#endif

// https://github.com/chipsalliance/verible/issues/1384
TEST(FormatterEndToEndTest, FuzzingRegression_UseAfterFree_1384) {
  TestForNonCrash("`c(`c(//););");
}

// https://github.com/chipsalliance/verible/issues/1386
TEST(FormatterEndToEndTest, FuzzingRegressionHierachyInvariant) {
  // Original sample input from fuzzer
  TestForNonCrash(string_view_from_literal("`c(`c()\0;);"));
  // Lexically correct variant (`\0` -> `\n`)
  TestForNonCrash(string_view_from_literal("`c(`c()\n;);"));
  // Lexically correct variant (`\0` removed)
  TestForNonCrash(string_view_from_literal("`c(`c(););"));
}

// Possibly same ? https://github.com/chipsalliance/verible/issues/1386
TEST(FormatterEndToEndTest, FuzzingRegression_outofmemory) {
  TestForNonCrash(string_view_from_literal("`f(1'O`f())\n"));
}

}  // namespace
}  // namespace formatter
}  // namespace verilog
