Referencia completa da sintaxe, comandos, expressoes e operadores do HMP.
1. Variaveis (SET)
Comando para definir variaveis. Suporta strings, numeros, listas, objetos e expressoes.
SINTAXE
SET <nome_variavel> TO <valor>
# Atribuicao de stringSETnomeTO"Maria"# Atribuicao de numeroSETidadeTO25# Numero decimalSETprecoTO19.99# ListaSETfrutasTO ["maca", "banana", "laranja"]
# Expressao matematicaSETdobroTO ${idade * 2}
# Interpolacao de stringSETsaudacaoTO"Ola, ${nome}!"# Acessar item de lista (indice 0)SETprimeiraTO ${frutas[0]}
# Acessar campo de objetoSETvalorTO ${last_result["campo"]}
Regras:
Nomes: letras, numeros e underscore (_)
Nao podem comecar com numero
Case-sensitive (nome != Nome)
Valores interpolados com ${...}
2. Chamada de Tools (CALL)
Comando para invocar tools nativas do HMP.
SINTAXE
CALL <categoria>.<tool> WITH <param1>=<valor1>, <param2>=<valor2>
# Imprimir mensagemCALLlog.printWITH message="Ola, mundo!"# Soma com label para resultadoCALLmath.sumWITH a=10, b=5, label="soma"SETresultadoTO ${last_result["soma"]}
# Usando variaveis como parametrosSETxTO100SETyTO50CALLmath.subtractWITH a=${x}, b=${y}
# Requisicao HTTPCALLhttp.getWITH url="https://api.github.com/users/octocat"# Gerar UUIDCALLcrypto.uuid
Resultado:
Resultado da ultima chamada: ${last_result}
Com label: ${last_result["label"]}
3. Condicional (IF/THEN/ELSE/ENDIF)
Executa blocos de codigo baseado em condicoes.
SINTAXE
IF <condicao> THEN ... ELSE ... ENDIF
== Igual
!= Diferente
> Maior
< Menor
>= Maior ou igual
<= Menor ou igual
AND E logico
OR Ou logico
# Condicional simplesSETidadeTO18IF ${idade >= 18} THENCALLlog.printWITH message="Maior de idade"ENDIF# Com ELSESETnotaTO7IF ${nota >= 6} THENCALLlog.printWITH message="Aprovado!"ELSECALLlog.printWITH message="Reprovado"ENDIF# Multiplas condicoes com ANDSETidadeTO25SETtem_cnhTOtrueIF ${idade >= 18} AND ${tem_cnh == true} THENCALLlog.printWITH message="Pode dirigir"ENDIF# Condicao com ORSETdiaTO"sabado"IF ${dia == "sabado"} OR ${dia == "domingo"} THENCALLlog.printWITH message="Final de semana!"ENDIF
4. Loops
4.1 LOOP N TIMES
Executa um bloco de codigo um numero fixo de vezes.