Could be anything. Depend on the context. Vaguely one could say it is a defined unit separating data without (necessarily) being part of the data itself.
I.e. in the string "what is", the quotes delimit the string, but are not a part of it. A data stream can have a defined byte-sequence/flag/etc delimiting records; i.e a comma delimited list:
record1,record2,record3
And so on...
One can separate it into two major groups being; 1. string literals, and 2. data.
In the broad sense it can include x^n definitions. A space can be a separator for words. Newline for records in a list, - and so on.
Important to notice and not mix is the term
operator, sorted by precedence and associativity:
-
-
----------------------------------------------
-
Operators Associativity
-
----------------------------------------------
-
() [] -> . left to right
-
! ~ ++ -- + - * (type) sizeof right to left
-
* / % left to right
-
+ - left to right
-
<< >> left to right
-
< <= > >= left to right
-
== != left to right
-
& left to right
-
^ left to right
-
| left to right
-
&& left to right
-
|| left to right
-
?: right to left
-
= += -= *= /= %=
-
&= ^= |= <<= >>= right to left
-
, left to right
-
----------------------------------------------
-
-
Also note that in C, semicolon is a statement
terminator and not a separator. While i.e. pascal defines it as a statement separator.