Skip to content

Releases: CodeShark37/Xpression-Engine-C

Official Release v1.0.0

19 Sep 17:08
2fa1bf7

Choose a tag to compare

🚀 Lançamento Oficial da Versão 1.0.0 - Xpression Engine C

Estou feliz em anunciar o lançamento da versão 1.0.0 da Xpression Engine! 🎉

Após um período de desenvolvimento intenso, esta primeira versão Release traz uma série de funcionalidades e correções importantes. O Xpression Engine C agora oferece mais flexibilidade, desempenho e novos recursos para facilitar o uso da engine de expressões no desenvolvimento de suas aplicações C.

🚀 Funcionalidades

Arvore de contexto hierárquica:

  • Agrupe suas variáveis no contexto de forma hierárquica.
  • Sem limites de propriedades e níveis de aninhamento.

Suporte a tipos de dados:

  • Booleanos ->true e false
  • Números -> 2, -1, 5.7
  • Strings -> 'Texto'
  • Mixed Arrays ->[12,'text',true,1.5,-1,['other array']]

Funções Builtins (21)

  • UPPERCASE(),SORT(),UNIQUE(),MAP(),MIXED(),EQ(),
  • MIN(),MAX(),CONTAINS(),COUNT(),CONCAT(),EQ(),
  • AVG(),MUL(),IF(),EQ(),NEQ(),LTE(),GTE(),GT(),LT().

Parser Optimizado

  • Melhorias no parser de expressões, resultando em um tempo de avaliação mais rápido e melhor report de erros com linha e coluna e detalhes do erro para melhor debug de expressões.

Export da AST em JSON/XML

  • Exporte a AST da expressão em JSON ou XML com -json e -xml

Eval sem AST

  • Imprima somente a avaliação da expressão sem a AST com -eval <expression>

🐞 Bugs Corrigidos

  • Erros de Sintaxe: Corrigi bugs no parser onde expressões contendo erros de sintaxe como expressões e arrays não fechadas com } e ]. Agora, a engine trata correctamente a sintaxe das expressões em todas as situações.

  • Ponteiros suspensos(dangling pointers): Agora livre de ponteiros suspensos e selvagens que causavam crash e erros na engine.

  • Sintaxe de comandos errada na CLI: Sintaxe de comandos não previstas eram aceites. Foi aplicado uma máquina de estados simplificada para lidar correctamente com as entradas da CLI e imprimir as formas de uso.

  • Arrays como parâmetro de Funções: Os Arrays não eram tratados como parâmetros distintos, como um tipo de dados, todos os elementos eram distribuídos no args. Agora os arrays são tratados correctamente -> SUM(['array1'],['array2'],'elemento solto').

Considerações Finais

  • Estou sempre aberto a contribuições! Se você encontrar um bug, tiver uma sugestão de melhoria, ou quiser adicionar uma nova funcionalidade, fique à vontade para abrir uma issue ou fazer um pull request.

  • Agradeço seu apoio e fico animado para ver como você usará a Xpression Engine C nas suas aplicações. Fique atento às próximas actualizações!

Made with love in Angola