Releases: CodeShark37/Xpression-Engine-C
Official Release v1.0.0
🚀 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 ->
trueefalse - 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
-jsone-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!