[Es] Diferenciación "haz"-"has"

Van unos cuantos meses sin pasar por este foro… en fin…

Noté hace unos días que el corrector gramatical no señalaba un error relacionado con la diferenciación entre “haz” (Del verbo Hacer) y “has” (del verbo Haber).

El caso concreto fue en una oración como esta:

“Haz vivido más tiempo del esperado.”

Bueno, después vi que ese no era el único caso que se le escapaba en relación a este asunto, y creo que podrían hacerse algunas reglas para solucionarlo; ¿Qué tal algo como esto?:

Antes de un participio “Has” se escribe con “S”.

Ejemplos:

“Has agotado mi paciencia…”; “¿Has incluido los costos de distribución… ?”; “Has hecho lo correcto.”

Casi en todos los demás casos “Haz” se escribe con Z, pero hay casos ambiguos, como el uso de “has-z” antes de “de”… por ejemplo:

“Has de saber que no digo la verdad en tales casos…” / “Haz de ella lo que quieras.”

Debido al caso anterior (ambiguo) hice estas… otras posibles reglas:

Antes de un artículo determinado 1, de un pronombre demostrativo 2, de un pronombre indefinido 3, de un sustantivo 4, de un verbo infinitivo o conjugado que NO sea participio 5, o de un artículo indeterminado 6, “Haz” se escribe con Z.

Ejemplos:

  1. “Haz lo que te digo.”; “Haz la tarea.”; “Haz el trabajo.”

  2. “Haz esto enseguida…”; “Haz eso que te dije…”

  3. “Haz cualquier tarea… ¡haz algo!”

  4. “Haz tareas…”; “Haz dibujos”…

  5. “Haz trabajar a esos perezosos.”

  6. “Haz un tablero de madera.”

Bueno, espero que se entienda la idea, y espero que sirva al menos una parte de mi aporte… Supongo que hay cosas que se me escapan.

Saludos.

Como siempre, Giovanny, stupenda contribución.
Añadiré una regla que lo contemple en los próximos días.

He añadido una regla para este primer caso:

<rule id="HAZ_PARTICIPIO">    
              <antipattern>
                  <token postag_regexp="yes" postag="D.*"></token>
                  <token>haz</token>
              </antipattern>
              <pattern case_sensitive="no">
                  <marker>
                    <token>haz</token>
                  </marker>
                  <token postag="V[ASM]P00.*" postag_regexp="yes"/>
              </pattern>
              <message>El verbo auxiliar se escribe con «s»: <suggestion>has</suggestion>.</message>
              <short>El verbo auxiliar se escribe con «s»</short>
              <example correction="Has"><marker>Haz</marker> agotado mi paciencia.</example>
              <example>El haz dividido se proyecta en varios sitios.</example>
          </rule>

Mirad por favor a ver si encontráis falsos positivos o casos en que no se detecta bien.