openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

test.min.js (6777B)


      1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
      2 // Distributed under an MIT license: http://codemirror.net/LICENSE
      3 
      4 (function() {
      5   var mode = CodeMirror.getMode({indentUnit: 4}, "verilog");
      6   function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
      7 
      8   MT("binary_literals",
      9      "[number 1'b0]",
     10      "[number 1'b1]",
     11      "[number 1'bx]",
     12      "[number 1'bz]",
     13      "[number 1'bX]",
     14      "[number 1'bZ]",
     15      "[number 1'B0]",
     16      "[number 1'B1]",
     17      "[number 1'Bx]",
     18      "[number 1'Bz]",
     19      "[number 1'BX]",
     20      "[number 1'BZ]",
     21      "[number 1'b0]",
     22      "[number 1'b1]",
     23      "[number 2'b01]",
     24      "[number 2'bxz]",
     25      "[number 2'b11]",
     26      "[number 2'b10]",
     27      "[number 2'b1Z]",
     28      "[number 12'b0101_0101_0101]",
     29      "[number 1'b 0]",
     30      "[number 'b0101]"
     31   );
     32 
     33   MT("octal_literals",
     34      "[number 3'o7]",
     35      "[number 3'O7]",
     36      "[number 3'so7]",
     37      "[number 3'SO7]"
     38   );
     39 
     40   MT("decimal_literals",
     41      "[number 0]",
     42      "[number 1]",
     43      "[number 7]",
     44      "[number 123_456]",
     45      "[number 'd33]",
     46      "[number 8'd255]",
     47      "[number 8'D255]",
     48      "[number 8'sd255]",
     49      "[number 8'SD255]",
     50      "[number 32'd123]",
     51      "[number 32 'd123]",
     52      "[number 32 'd 123]"
     53   );
     54 
     55   MT("hex_literals",
     56      "[number 4'h0]",
     57      "[number 4'ha]",
     58      "[number 4'hF]",
     59      "[number 4'hx]",
     60      "[number 4'hz]",
     61      "[number 4'hX]",
     62      "[number 4'hZ]",
     63      "[number 32'hdc78]",
     64      "[number 32'hDC78]",
     65      "[number 32 'hDC78]",
     66      "[number 32'h DC78]",
     67      "[number 32 'h DC78]",
     68      "[number 32'h44x7]",
     69      "[number 32'hFFF?]"
     70   );
     71 
     72   MT("real_number_literals",
     73      "[number 1.2]",
     74      "[number 0.1]",
     75      "[number 2394.26331]",
     76      "[number 1.2E12]",
     77      "[number 1.2e12]",
     78      "[number 1.30e-2]",
     79      "[number 0.1e-0]",
     80      "[number 23E10]",
     81      "[number 29E-2]",
     82      "[number 236.123_763_e-12]"
     83   );
     84 
     85   MT("operators",
     86      "[meta ^]"
     87   );
     88 
     89   MT("keywords",
     90      "[keyword logic]",
     91      "[keyword logic] [variable foo]",
     92      "[keyword reg] [variable abc]"
     93   );
     94 
     95   MT("variables",
     96      "[variable _leading_underscore]",
     97      "[variable _if]",
     98      "[number 12] [variable foo]",
     99      "[variable foo] [number 14]"
    100   );
    101 
    102   MT("tick_defines",
    103      "[def `FOO]",
    104      "[def `foo]",
    105      "[def `FOO_bar]"
    106   );
    107 
    108   MT("system_calls",
    109      "[meta $display]",
    110      "[meta $vpi_printf]"
    111   );
    112 
    113   MT("line_comment", "[comment // Hello world]");
    114 
    115   // Alignment tests
    116   MT("align_port_map_style1",
    117      /**
    118       * mod mod(.a(a),
    119       *         .b(b)
    120       *        );
    121       */
    122      "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],",
    123      "        .[variable b][bracket (][variable b][bracket )]",
    124      "       [bracket )];",
    125      ""
    126   );
    127 
    128   MT("align_port_map_style2",
    129      /**
    130       * mod mod(
    131       *     .a(a),
    132       *     .b(b)
    133       * );
    134       */
    135      "[variable mod] [variable mod][bracket (]",
    136      "    .[variable a][bracket (][variable a][bracket )],",
    137      "    .[variable b][bracket (][variable b][bracket )]",
    138      "[bracket )];",
    139      ""
    140   );
    141 
    142   // Indentation tests
    143   MT("indent_single_statement_if",
    144       "[keyword if] [bracket (][variable foo][bracket )]",
    145       "    [keyword break];",
    146       ""
    147   );
    148 
    149   MT("no_indent_after_single_line_if",
    150       "[keyword if] [bracket (][variable foo][bracket )] [keyword break];",
    151       ""
    152   );
    153 
    154   MT("indent_after_if_begin_same_line",
    155       "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
    156       "    [keyword break];",
    157       "    [keyword break];",
    158       "[keyword end]",
    159       ""
    160   );
    161 
    162   MT("indent_after_if_begin_next_line",
    163       "[keyword if] [bracket (][variable foo][bracket )]",
    164       "    [keyword begin]",
    165       "        [keyword break];",
    166       "        [keyword break];",
    167       "    [keyword end]",
    168       ""
    169   );
    170 
    171   MT("indent_single_statement_if_else",
    172       "[keyword if] [bracket (][variable foo][bracket )]",
    173       "    [keyword break];",
    174       "[keyword else]",
    175       "    [keyword break];",
    176       ""
    177   );
    178 
    179   MT("indent_if_else_begin_same_line",
    180       "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]",
    181       "    [keyword break];",
    182       "    [keyword break];",
    183       "[keyword end] [keyword else] [keyword begin]",
    184       "    [keyword break];",
    185       "    [keyword break];",
    186       "[keyword end]",
    187       ""
    188   );
    189 
    190   MT("indent_if_else_begin_next_line",
    191       "[keyword if] [bracket (][variable foo][bracket )]",
    192       "    [keyword begin]",
    193       "        [keyword break];",
    194       "        [keyword break];",
    195       "    [keyword end]",
    196       "[keyword else]",
    197       "    [keyword begin]",
    198       "        [keyword break];",
    199       "        [keyword break];",
    200       "    [keyword end]",
    201       ""
    202   );
    203 
    204   MT("indent_if_nested_without_begin",
    205       "[keyword if] [bracket (][variable foo][bracket )]",
    206       "    [keyword if] [bracket (][variable foo][bracket )]",
    207       "        [keyword if] [bracket (][variable foo][bracket )]",
    208       "            [keyword break];",
    209       ""
    210   );
    211 
    212   MT("indent_case",
    213       "[keyword case] [bracket (][variable state][bracket )]",
    214       "    [variable FOO]:",
    215       "        [keyword break];",
    216       "    [variable BAR]:",
    217       "        [keyword break];",
    218       "[keyword endcase]",
    219       ""
    220   );
    221 
    222   MT("unindent_after_end_with_preceding_text",
    223       "[keyword begin]",
    224       "    [keyword break]; [keyword end]",
    225       ""
    226   );
    227 
    228   MT("export_function_one_line_does_not_indent",
    229      "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
    230      ""
    231   );
    232 
    233   MT("export_task_one_line_does_not_indent",
    234      "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
    235      ""
    236   );
    237 
    238   MT("export_function_two_lines_indents_properly",
    239     "[keyword export]",
    240     "    [string \"DPI-C\"] [keyword function] [variable helloFromSV];",
    241     ""
    242   );
    243 
    244   MT("export_task_two_lines_indents_properly",
    245     "[keyword export]",
    246     "    [string \"DPI-C\"] [keyword task] [variable helloFromSV];",
    247     ""
    248   );
    249 
    250   MT("import_function_one_line_does_not_indent",
    251     "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];",
    252     ""
    253   );
    254 
    255   MT("import_task_one_line_does_not_indent",
    256     "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];",
    257     ""
    258   );
    259 
    260   MT("import_package_single_line_does_not_indent",
    261     "[keyword import] [variable p]::[variable x];",
    262     "[keyword import] [variable p]::[variable y];",
    263     ""
    264   );
    265 
    266   MT("covergroup_with_function_indents_properly",
    267     "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];",
    268     "    [variable c] : [keyword coverpoint] [variable c];",
    269     "[keyword endgroup]: [variable cg]",
    270     ""
    271   );
    272 
    273 })();