def p_lexpr(p):
    """ lexpr : ID EQ
              | LET ID EQ
              | ARRAY_ID EQ
              | LET ARRAY_ID EQ
    """
    global LET_ASSIGNMENT

    LET_ASSIGNMENT = True  # Mark we're about to start a LET sentence

    if p[1] == 'LET':
        p[0] = p[2]
        i = 2
    else:
        p[0] = p[1]
        i = 1

    SYMBOL_TABLE.access_id(p[i], p.lineno(i))
lexpr : ID EQ
              | LET ID EQ
              | ARRAY_ID EQ
              | LET ARRAY_ID EQ