valhallacO compilador Valhalla

Este é o analisador e o compilador de Valhalla, que exclui a máquina virtual em que o bytecode compilado é executado, que é, Brokkr VM.
[!!] Planejando uma reescrita completa e equilibrando o trabalho.
O que foi feito até agora no front-end:
A VM, ou seja, o back-end para o idioma, está sendo desenvolvido separadamente e progredirá semi-independentemente.
Na sua concha, na raiz deste repositório, você pode escrever:
cargo run [source-file-to-compile.vh] [-o out-file] [-v] Ou, peça ao compilador informações de depuração, como fluxos de token, árvores de sintaxe, tabelas de símbolos, instruções de bytecode, & ct., Use --features=debug :
cargo run --features=debug [source-file.vh]Por exemplo, você pode executar.
cargo run test_source.vh -v # For verbose output. para demonstrar compilação com o arquivo de teste incluído ( test_source.vh ). O argumento de um arquivo de origem para compilar é, é claro, necessário.
current_compiler_test.md
Este repositório contém o front-end (compilação de analisador e bytecode) que processa a sintaxe e a semântica do código-fonte. O AST gerado é então compilado para BROKKR VM BYTECODE. A execução do bytecode subsequente é tratada pela VM da linguagem (máquina virtual) chamada Brokkr, que existe separadamente desse repositório.
Valhalla é uma linguagem de programação teórica de conjuntos. Ou seja, é baseado em princípios da teoria dos conjuntos, de uma maneira que todos os tipos são apenas conjuntos e, portanto, tudo é apenas um elemento de um conjunto. O idioma deve dar uma nova maneira de interagir com os tipos e fornece uma maneira intuitiva de pensar sobre eles. Um objetivo é que também possa ser usado para verificar provas e tal teoria de conjuntos.
O idioma é um objetivo geral, mas, em vez de ser totalmente orientado a objetos, ou funcional etc., é apenas baseado na teoria do conjunto. Pelo que reuni, não é um paradigma muito popular ... provavelmente por boas razões, mas ei, pode ser interessante.
Para ser significativamente reduzido.
