Does this procedure give an effective way of assigning unique Godel numbers to Turing programs?

Let $\displaystyle p_i$ denote the $\displaystyle i$th prime number. Let $\displaystyle Q = \{q_0,q_1,\dots\}$ be internal states, let $\displaystyle \{B,1\}$ denote tape symbols and let $\displaystyle \{L,R\}$ denote direction symbols. Assign a code number to each of these symbols as follows: $\displaystyle n(B) = p_1, n(1) = p_2, n(L) = p_3, n(R) = p_4, n(q_k) = p_{k+5}$.

Now suppose $\displaystyle L$ is a line of a Turing program $\displaystyle P$. Then $\displaystyle L = (q_i,s,q_j,s',X)$ where $\displaystyle s,s' \in \{B,1\}$ and $\displaystyle X \in \{L,R\}$. Assign a code number to $\displaystyle L$ as follows: $\displaystyle n(L) = p_1^{n(q_i)}p_2^{n(s)}p_3^{n(q_j)}p_4^{n(s')}p_5^{ n(X)}$

Lastly suppose that $\displaystyle P = \{L_1,...,L_k\}$ is a Turing program. Assign a code number to $\displaystyle P$ as follows: $\displaystyle n(P) = p_{n(L_1)}^{n(L_1)}\cdots p_{n(L_k)}^{n(L_k)}$.