+ % the cursor is a macro's child. There is an eventually empty sequence of delimiters, which precedes the
+ % cursor. Before this sequence, there is a p node. This p node has as its last child a token
+ \item{\verb+c[p[(i|n|o|s|c[ ])$]((i|n|o|s|c[ ])*)#]/cursor+}\\
+ remove the cursor and replace the token with the cursor.
+
+ % there is a token, which precedes the cursor. The cursor is child of either a group or a parameter.
+ % the case where the cursor is child of a group with id, there are no nodes after the cusror and there
+ % are no nodes preceding the token, is handled by the first rule.
+ % This rule is duplicated below, but that one could have a wrong syntax. This one has been tested.
+ \item{\verb+<g|p>[(i|n|o|c[ ])#]/cursor+}\\
+ remove the cursor and replace the token with the cursor.
+
+ % cursor's parent is a script (the cursor is not the base). The script's base is an empty group with id.
+ % The script is preceded by a token.The script's parent is group or a parameter.
+ % The case where the script's parent is a group with id and the token is the first child, while
+ % the script is the last one, is handled some rules later.
+ \item{\verb+<g|p>[(i|n|o|s|c[ ])#]/<sp|sb>[^(g[@id][ ])#$]/cursor+}\\
+ remove the script and replace the token with the cursor.
+
+ % As above, but: we don't care who precedes the script (we do not have to remove it); the script's base
+ % is still an empty group, but it has no id.
+ % Ad above, we have to precise that the situation where the script is the only child of a group with id
+ % is handled some rules later.
+ \item{\verb+<g|p>/<sp|sb>[^(g[!@id][ ])#$]/curosr+}\\
+ replace the script with the cursor.
+
+ % The cursor is the last child of a script. The script's base is token.
+ \item{\verb+<g|p>/<sp|sb>[^(i|n|o|s|c[ ])#$]/cursor+}\\
+ repalce the script with the cursor.
+
+