Yulik, The 1800 LRM allows you to construct both strings and identifiers, so preservation of white space would be desired. Not that I really need to know, but why couldn't you put your comments on the line before the macro? Dave ________________________________ From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Feldman, Yulik Sent: Sunday, February 12, 2006 12:44 AM To: sv-bc@eda.org Subject: [sv-bc] white space at the end of macro text Hi, I'm not sure how to interpret the LRM on whether the white space at the end of macro text should become a part of the substituted macro text at the location of the macro usage, or whether it should be removed. Consider the following macro definition and macro usage: `define kuku 1 a = `kuku; The macro "kuku" contains 3 spaces at the end of the line before the new-line character. Should the result of the macro substitution be "a = 1;" or "a = 1 ;"? The section "19.3.1 `define" of IEEE P1364-2005 says: "The first newline not preceded by a backslash shall end the macro text.". This may be interpreted as if the white space should be preserved, but it is not clear whether this description refers just to the general definition of where the macro definition ends or it indeed defines whether the white space should be preserved or not. Consider a slightly different example, with a one-line comment following the macro text: `define kuku_with_comment 2 // comment a = `kuku_with_comment; According to the LRM, the comment should be removed, but nothing is said on whether the white space preceding the comment should be removed or not. There are situations when the presence or absence of the white space at the end of the substituted text may be important. Consider the following, more complex, example: `define kuku 1 `define kuku_with_comment 2 // comment `define mod(arg1,arg2) \ (* foo = "AA``arg1BB``arg2" *) \ module a(); \ endmodule `mod(`kuku,`kuku_with_comment) Should the final value of the attribute be "AA1BB2" or "AA1 BB2 "? From the design perspective, it is advantageous that the language requires the removal of the trailing spaces in both cases, to allow building strings/names as in the example above. Note that it is especially important to remove the trailing spaces in the case with the comment, since, if the spaces are not removed, it makes it impossible to define a macro with a comment that doesn't have a white space at the end of its substituted text. --Yulik.Received on Sun, 12 Feb 2006 20:49:19 -0800
This archive was generated by hypermail 2.1.8 : Sun Feb 12 2006 - 20:50:25 PST