I am a little surprised by the following.
Example 1:
char s[100] = \"abcd\"; // declare and initialize - WORKS
Example 2:
You can use this:
yylval.sval=strdup("VHDL + Volcal trance...");
Where yylval is char*. strdup from does the job.