If a token such as a [comment] or [id] is artificially programmed to be a null string, the output spacing rules for it should not apply. Rather, it should act as if it were [empty].
Example:
define program
[token*]
end define
function main
replace [program]
P [program]
by
P [message "output should be: 'y y y'"]
[replaceByNull 'x]
end function
rule replaceByNull Id [id]
replace $ [id]
Id
construct NullId [id]
_ [: 1 0]
by
NullId
end rule
If a token such as a [comment] or [id] is artificially programmed to be a null string, the output spacing rules for it should not apply. Rather, it should act as if it were [empty].
Example:
Input:
Output:
(Note the space at the beginning of the line.)