标记 #text ... #endtext 区域
#text := <varname>
First Line
Second Line
#endtext
该语言支持 TEXT ... ENDTEXT 结构。预处理器会将这些命令转换为 #text ... #endtext 结构。
#endtext 总是 "单独 "出现在一行代码中,并将被调用(可选)与 #text 指令一起声明的 endfunction 所取代,当将代码块赋值给变量时,赋值将在 #endtext 行执行。
请注意,以下 2 个 UDC 已在 XSharpDefs.xh 中定义
#xcommand ENDTEXT => #endtext
#xcommand TEXT TO FILE <(file)> ;
=> _TextSave( <(file)> ) ;;
#text QOut, _TextRestore
TEXT TO FILE EXAMPLE.TXT
line 1
line 2
line 3
line 4
ENDTEXT
TEXT TO FILE 命令被转换为对 _TextSave() 函数的调用,随后是 #text 指令,该指令指定每一行都必须发送到 QOut() 函数,并声明 #endtext 行必须由对 _TextRestore() 函数的调用所取代。QOut() 和 _TextRestore 函数名是不带参数的。代码块中的每一行都将作为参数发送给 QOut() 函数。
因此,这段代码将转换为
_TextSave("EXAMPLE.TXT");
QOut("line 1")
QOut("line 2")
QOut("line 3")
QOut("line 4")
_TextRestore()