In reply to mitesh.patel:
After seeing some code, your second (reverse) question makes more sense. What you wrote should work, but there are some differences in terminology I would have used to explain it.
By using macros, you are converting arbitrary text into strings and identifiers. The macro pre-processor does not know anything about SystemVerilog identifiers. Only after processing the text macros does the SystemVerilog parser look at the code