<title>Examples</title>
<para>
<programlisting language="rascal" linenumbering="unnumbered">module demo::basic::Quine
import IO;
import String;
void quine(){
println(program); <co xml:id="CO4-1"/>
println("\"" + escape(program, ("\"" : "\\\"", "\\" : "\\\\")) + "\";"); <co xml:id="CO4-2"/>
}
str program = <co xml:id="CO4-3"/>
"module demo::basic::Quine
import IO;
import String;
void quine(){
println(program);
println(\"\\\"\" + escape(program, (\"\\\"\" : \"\\\\\\\"\", \"\\\\\" : \"\\\\\\\\\")) + \"\\\";\");
}
str program ="; <co xml:id="CO4-4"/></programlisting>
</para>
</formalpara>
<calloutlist>
<callout arearefs="CO4-3">
<para>A remarkable point in the code: the string variable <literal>program</literal> has as value
the text of the module <literal>Quine</literal> upto here.</para>
</callout>