Compilador usando flex/lex and yacc/bison transformando da linguagem weeb para C.
Foi utilizado o sistema operacional Windows 10 para a execução do bison, flex e o compilador gcc.
- Baixe o Complete package do Bison
- Baixe o Complete package do Flex
- Coloque o path da instalação do GnuWin32 nas variáveis de ambiente. Aconselhável utilizar a pasta raiz. Ex.: C:\GnuWin32\bin
- Siga esse tutorial -> Como instalar o gcc no windows 10 de maneira fácil
- Coloque o path da instalação do MinGW nas variáveis de ambiente. Aconselhável utilizar a pasta raiz. Ex.: C:\MinGW\bin
Há duas opções, caso tenha seguido os passos anteriores e seja o windows 10, já se tem um Makefile. Rode:
make -f win_makeCaso tenha sido de outra forma:
- Para fazer o parser
bison -d code.yflex code.lgcc y.tab.c lex.yy.c -o code- Para executar o parser, precisa passar para ele o arquivo de entrada e o arquivo de saída como parâmetro. O projeto já tem um arquivo de input como exemplo.
code input.weeb output.c- Para compilar o programa em C gerado no passo anterior
gcc output.cImportante!!! Sempre que for executar o projeto de novo, deletar os arquivos gerados durante o processo para não ter conflitos
A linguagem aceita inteiro e ponto flutuante:
inteiro x
flutuante y
É necessário declarar as variáveis antes de atribuir valor a elas.
A linguagem weeb aceita as operações de:
- Soma e subtração
- Produto e divisão
- Atribuição:
y = 10.32
Uma condição simples é da forma:
se expressão [
instrução]
Caso seja preciso uma alternativa à condição:
se expressão [
instrução ]
senao[
instrução ]
Sendo que uma instrução pode ser um bloco de instruções Importante observar a localização dos colchetes. Se tentar um código como mostrado abaixo, todos estariam errados e o código em weeb não funcionará:
se expressão
[
instrução
]
senao
[ instrução
]
Ou seja, o primeiro colchete está logo após a expressão, e o último, está logo após da última instrução.
A linguagem aceita operações de comparação
- Maior ou igual:
x >= y - Menor ou igual:
x <= y - Igualdade:
x =?= y - Diferença:
x =/= y
A linguagem aceita apenas um tipo de estrutura de repetição:
enquanto expressão[
instrução]
Essa estrutura segue a mesma regra das condições quanto aos colchetes.
Para ler uma variável, e atribuir o valor lido a ela, e escrever seu valor, seria da forma:
inteiro x
ler x
escrever x
Pode-se escrever uma string também:
escrever "Ola mundo"