I want to make a grammar for the language consisting of all strings of $a, b$ and $c$ (including $\epsilon$) such that the number of $a$'s, $b$'s and $c$'s is equal.
The idea is to use nonterminals $A,B$ and $C$ and permute them in every way and in between them we should be able to put more strings with equal number of $a$'s, $b$'s and $c$'s. So the grammar would be \begin{align*} S &\rightarrow ASBSC\; | \; BSASC\; |\; ASCSB \; |\; CSBSA\; |\; CSASB\; |\; BSCSA\; | \; \epsilon\\ A &\rightarrow a\\ B &\rightarrow b\\ C &\rightarrow c \end{align*}
Is this grammar context-sensitive?