CasperSecurity

Current Path : /usr/share/javascript/codemirror/mode/verilog/
Upload File :
Current File : //usr/share/javascript/codemirror/mode/verilog/test.js

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE

(function() {
  var mode = CodeMirror.getMode({indentUnit: 4}, "verilog");
  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }

  MT("binary_literals",
     "[number 1'b0]",
     "[number 1'b1]",
     "[number 1'bx]",
     "[number 1'bz]",
     "[number 1'bX]",
     "[number 1'bZ]",
     "[number 1'B0]",
     "[number 1'B1]",
     "[number 1'Bx]",
     "[number 1'Bz]",
     "[number 1'BX]",
     "[number 1'BZ]",
     "[number 1'b0]",
     "[number 1'b1]",
     "[number 2'b01]",
     "[number 2'bxz]",
     "[number 2'b11]",
     "[number 2'b10]",
     "[number 2'b1Z]",
     "[number 12'b0101_0101_0101]",
     "[number 1'b 0]",
     "[number 'b0101]"
  );

  MT("octal_literals",
     "[number 3'o7]",
     "[number 3'O7]",
     "[number 3'so7]",
     "[number 3'SO7]"
  );

  MT("decimal_literals",
     "[number 0]",
     "[number 1]",
     "[number 7]",
     "[number 123_456]",
     "[number 'd33]",
     "[number 8'd255]",
     "[number 8'D255]",
     "[number 8'sd255]",
     "[number 8'SD255]",
     "[number 32'd123]",
     "[number 32 'd123]",
     "[number 32 'd 123]"
  );

  MT("hex_literals",
     "[number 4'h0]",
     "[number 4'ha]",
     "[number 4'hF]",
     "[number 4'hx]",
     "[number 4'hz]",
     "[number 4'hX]",
     "[number 4'hZ]",
     "[number 32'hdc78]",
     "[number 32'hDC78]",
     "[number 32 'hDC78]",
     "[number 32'h DC78]",
     "[number 32 'h DC78]",
     "[number 32'h44x7]",
     "[number 32'hFFF?]"
  );

  MT("real_number_literals",
     "[number 1.2]",
     "[number 0.1]",
     "[number 2394.26331]",
     "[number 1.2E12]",
     "[number 1.2e12]",
     "[number 1.30e-2]",
     "[number 0.1e-0]",
     "[number 23E10]",
     "[number 29E-2]",
     "[number 236.123_763_e-12]"
  );

  MT("operators",
     "[meta ^]"
  );

  MT("keywords",
     "[keyword logic]",
     "[keyword logic] [variable foo]",
     "[keyword reg] [variable abc]"
  );

  MT("variables",
     "[variable _leading_underscore]",
     "[variable _if]",
     "[number 12] [variable foo]",
     "[variable foo] [number 14]"
  );

  MT("tick_defines",
     "[def `FOO]",
     "[def `foo]",
     "[def `FOO_bar]"
  );

  MT("system_calls",
     "[meta $display]",
     "[meta $vpi_printf]"
  );

  MT("line_comment", "[comment // Hello world]");

  // Alignment tests
  MT("align_port_map_style1",
     /**
      * mod mod(.a(a),
      *         .b(b)
      *        );
      */
     "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],",
     "        .[variable b][bracket (][variable b][bracket )]",
     "       [bracket )];",
     ""
  );

  MT("align_port_map_style2",
     /**
      * mod mod(
      *     .a(a),
      *     .b(b)
      * );
      */
     "[variable mod] [variable mod][bracket (]",
     "    .[variable a][bracket (][variable a][bracket )],",
     "    .[variable b][bracket (][variable b][bracket )]",
     "[bracket )];",
     ""
  );

  MT("align_assignments",
     /**
      * always @(posedge clk) begin
      *    if (rst)
      *       data_out <= 8'b0 +
      *                   8'b1;
      *    else
      *       data_out = 8'b0 +
      *                  8'b1;
      *    data_out =
      *       8'b0 + 8'b1;
      * end
      */
     "[keyword always] [def @][bracket (][keyword posedge] [variable clk][bracket )] [keyword begin]",
     "    [keyword if] [bracket (][variable rst][bracket )]",
     "        [variable data_out] [meta <=] [number 8'b0] [meta +]",
     "                    [number 8'b1];",
     "    [keyword else]",
     "        [variable data_out] [meta =] [number 8'b0] [meta +]",
     "                   [number 8'b1];",
     "    [variable data_out] [meta =] [number 8'b0] [meta +]",
     "               [number 8'b1];",
     "[keyword end]",
     ""
  );

  // Indentation tests
  MT("indent_single_statement_if",
      "[keyword if] [bracket (][variable foo][bracket )]",
      "    [keyword break];",
      ""
  );

  MT("no_indent_after_single_line_if",
      "[keyword if] [bracket (][variable foo][bracket )] [keyword break];",
      ""
  );

  MT("indent_after_if_begin_same_line",
      "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
      "    [keyword break];",
      "    [keyword break];",
      "[keyword end]",
      ""
  );

  MT("indent_after_if_begin_next_line",
      "[keyword if] [bracket (][variable foo][bracket )]",
      "    [keyword begin]",
      "        [keyword break];",
      "        [keyword break];",
      "    [keyword end]",
      ""
  );

  MT("indent_single_statement_if_else",
      "[keyword if] [bracket (][variable foo][bracket )]",
      "    [keyword break];",
      "[keyword else]",
      "    [keyword break];",
      ""
  );

  MT("indent_if_else_begin_same_line",
      "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
      "    [keyword break];",
      "    [keyword break];",
      "[keyword end] [keyword else] [keyword begin]",
      "    [keyword break];",
      "    [keyword break];",
      "[keyword end]",
      ""
  );

  MT("indent_if_else_begin_next_line",
      "[keyword if] [bracket (][variable foo][bracket )]",
      "    [keyword begin]",
      "        [keyword break];",
      "        [keyword break];",
      "    [keyword end]",
      "[keyword else]",
      "    [keyword begin]",
      "        [keyword break];",
      "        [keyword break];",
      "    [keyword end]",
      ""
  );

  MT("indent_if_nested_without_begin",
      "[keyword if] [bracket (][variable foo][bracket )]",
      "    [keyword if] [bracket (][variable foo][bracket )]",
      "        [keyword if] [bracket (][variable foo][bracket )]",
      "            [keyword break];",
      ""
  );

  MT("indent_case",
      "[keyword case] [bracket (][variable state][bracket )]",
      "    [variable FOO]:",
      "        [keyword break];",
      "    [variable BAR]:",
      "        [keyword break];",
      "[keyword endcase]",
      ""
  );

  MT("unindent_after_end_with_preceding_text",
      "[keyword begin]",
      "    [keyword break]; [keyword end]",
      ""
  );

  MT("export_function_one_line_does_not_indent",
     "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
     ""
  );

  MT("export_task_one_line_does_not_indent",
     "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
     ""
  );

  MT("export_function_two_lines_indents_properly",
    "[keyword export]",
    "    [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
    ""
  );

  MT("export_task_two_lines_indents_properly",
    "[keyword export]",
    "    [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
    ""
  );

  MT("import_function_one_line_does_not_indent",
    "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];",
    ""
  );

  MT("import_task_one_line_does_not_indent",
    "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];",
    ""
  );

  MT("import_package_single_line_does_not_indent",
    "[keyword import] [variable p]::[variable x];",
    "[keyword import] [variable p]::[variable y];",
    ""
  );

  MT("covergroup_with_function_indents_properly",
    "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];",
    "    [variable c] : [keyword coverpoint] [variable c];",
    "[keyword endgroup]: [variable cg]",
    ""
  );

  MT("indent_uvm_macros",
     /**
      *  `uvm_object_utils_begin(foo)
      *    `uvm_field_event(foo, UVM_ALL_ON)
      *  `uvm_object_utils_end
      */
     "[def `uvm_object_utils_begin][bracket (][variable foo][bracket )]",
     "    [def `uvm_field_event][bracket (][variable foo], [variable UVM_ALL_ON][bracket )]",
     "[def `uvm_object_utils_end]",
     ""
  );

  MT("indent_uvm_macros2",
     /**
      * `uvm_do_with(mem_read,{
      *    bar_nb == 0;
      * })
      */
     "[def `uvm_do_with][bracket (][variable mem_read],[bracket {]",
     "    [variable bar_nb] [meta ==] [number 0];",
     "[bracket })]",
     ""
  );

  MT("indent_wait_disable_fork",
     /**
      * virtual task body();
      *    repeat (20) begin
      *       fork
      *          `uvm_create_on(t,p_seq)
      *       join_none
      *    end
      *    wait fork;
      *    disable fork;
      * endtask : body
      */
     "[keyword virtual] [keyword task] [variable body][bracket ()];",
     "    [keyword repeat] [bracket (][number 20][bracket )] [keyword begin]",
     "        [keyword fork]",
     "            [def `uvm_create_on][bracket (][variable t],[variable p_seq][bracket )]",
     "        [keyword join_none]",
     "    [keyword end]",
     "    [keyword wait] [keyword fork];",
     "    [keyword disable] [keyword fork];",
     "[keyword endtask] : [variable body]",
     ""
  );

  MT("indent_typedef_class",
     /**
      * typedef class asdf;
      * typedef p p_t[];
      * typedef enum {
      *    ASDF
      * } t;
      */
     "[keyword typedef] [keyword class] [variable asdf];",
     "[keyword typedef] [variable p] [variable p_t][bracket [[]]];",
     "[keyword typedef] [keyword enum] [bracket {]",
     "    [variable ASDF]",
     "[bracket }] [variable t];",
     ""
  );

  MT("indent_case_with_macro",
     /**
      * // It should be assumed that Macros can have ';' inside, or 'begin'/'end' blocks.
      * // As such, 'case' statement should indent correctly with macros inside.
      * case(foo)
      *    ASDF : this.foo = seqNum;
      *    ABCD : `update(f)
      *    EFGH : `update(g)
      * endcase
      */
     "[keyword case][bracket (][variable foo][bracket )]",
     "    [variable ASDF] : [keyword this].[variable foo] [meta =] [variable seqNum];",
     "    [variable ABCD] : [def `update][bracket (][variable f][bracket )]",
     "    [variable EFGH] : [def `update][bracket (][variable g][bracket )]",
     "[keyword endcase]",
     ""
  );

  MT("indent_extern_function",
     /**
      * extern virtual function void do(ref packet trans);
      * extern virtual function void do2(ref packet trans);
      */
     "[keyword extern] [keyword virtual] [keyword function] [keyword void] [variable do1][bracket (][keyword ref] [variable packet] [variable trans][bracket )];",
     "[keyword extern] [keyword virtual] [keyword function] [keyword void] [variable do2][bracket (][keyword ref] [variable packet] [variable trans][bracket )];",
     ""
  );

  MT("indent_assignment",
     /**
      * for (int i=1;i < fun;i++) begin
      *    foo = 2 << asdf || 11'h35 >> abcd
      *          && 8'h6 | 1'b1;
      * end
      */
     "[keyword for] [bracket (][keyword int] [variable i][meta =][number 1];[variable i] [meta <] [variable fun];[variable i][meta ++][bracket )] [keyword begin]",
     "    [variable foo] [meta =] [number 2] [meta <<] [variable asdf] [meta ||] [number 11'h35] [meta >>] [variable abcd]",
     "          [meta &&] [number 8'h6] [meta |] [number 1'b1];",
     "[keyword end]",
     ""
  );

  MT("indent_foreach_constraint",
     /**
      * `uvm_rand_send_with(wrTlp, {
      *    length ==1;
      *    foreach (Data[i]) {
      *       payload[i] == Data[i];
      *    }
      * })
      */
     "[def `uvm_rand_send_with][bracket (][variable wrTlp], [bracket {]",
     "    [variable length] [meta ==][number 1];",
     "    [keyword foreach] [bracket (][variable Data][bracket [[][variable i][bracket ]])] [bracket {]",
     "        [variable payload][bracket [[][variable i][bracket ]]] [meta ==] [variable Data][bracket [[][variable i][bracket ]]];",
     "    [bracket }]",
     "[bracket })]",
     ""
  );

  MT("indent_compiler_directives",
     /**
      * `ifdef DUT
      * `else
      *     `ifndef FOO
      *         `define FOO
      *     `endif
      * `endif
      * `timescale 1ns/1ns
      */
     "[def `ifdef] [variable DUT]",
     "[def `else]",
     "    [def `ifndef] [variable FOO]",
     "        [def `define] [variable FOO]",
     "    [def `endif]",
     "[def `endif]",
     "[def `timescale] [number 1][variable ns][meta /][number 1][variable ns]",
     ""
  );

})();
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY