sv-parser-pp 0.13.5

Helper crate of sv-parser
Documentation
// IEEE1800-2017 Clause 22.11
// The `pragma directive is a structured specification that alters
// interpretation of the SystemVerilog source. The specification introduced by
// this directive is referred to as a pragma. The effect of pragmas other than
// those specified in this standard is implementation-specific.
`pragma foo
`pragma foo bar
`pragma foo bar,baz
`pragma foo bar, baz
// The reset and resetall pragmas shall restore the default values and state of
// pragma_keywords associated with the affected pragmas. These default values
// shall be the values that the tool defines before any SystemVerilog text has
// been processed. The reset pragma shall reset the state for all pragma_names
// that appear as pragma_keywords in the directive. The resetall pragma shall
// reset the state of all pragma_names recognized by the implementation.
`pragma reset bar
`pragma reset bar,baz
`pragma reset bar, baz

// Protected envelopes specify a region of text that shall be transformed prior
// to analysis by the source language processor. These regions of text are
// structured to provide the source language processor with the specification
// of the cryptographic algorithm, key, envelope attributes, and textual design
// data.
// The following example shows the use of the protect pragma to specify
// encryption of design data. The encryption method is a simple substitution
// cipher where each alphabetic character is replaced with the 13th character
// in alphabetic sequence, commonly referred to as "rot13." Nonalphabetic
// characters are not substituted. The following design data contain an
// encryption envelope that specifies the desired protection.
module secret (a, b);
  input a;
  output b;
`pragma protect encoding=(enctype="raw")
`pragma protect data_method="x-caesar", data_keyname="rot13", begin
`pragma protect runtime_license=(library="lic.so",feature="runSecret",entry="chk", match=42)
  logic b;
  initial begin
    b = 0;
  end
  always begin
    #5 b = a;
  end
`pragma protect end
endmodule
// This file should be emitted from the preprocessor unchanged.