<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_gene_substitution_language() -> ParserElement: """Build a gene substitution parser."""

    parser_element = gsub_tag + nest(
        dna_nucleotide(GSUB_REFERENCE),
        ppc.integer(GSUB_POSITION),
        dna_nucleotide(GSUB_VARIANT),
    )
    parser_element.setParseAction(_handle_gsub)
    return parser_element