- MSYS2 instalado
- Terminal: MSYS2 MinGW 64-bit
- Pacotes obrigatórios (instalar no terminal MSYS2):
Atualiza o sistema (pode pedir para reiniciar)
pacman -Su
Depois, instale o compilador e ferramentas:
pacman -S base-devel mingw-w64-x86_64-toolchain
🛠️ Compilação
No terminal MSYS2 MinGW 64-bit, vá até a pasta do projeto:
cd /c/Users/seu_usuario/caminho/para/cshort-compiler
Isso irá compilar o projeto e gerar o executável:
make
./build/lexer 'nome do arq'
📜 Gramática — Cshort v1.0 (clique para expandir)
// prog ::= { decl ';' | func }
// decl ::= tipo decl_var { ',' decl_var}
// | tipo id '(' tipos_param')' { ',' id '(' tipos_param')' }
// | void id '(' tipos_param')' { ',' id '(' tipos_param')' }
// decl_var ::= id [ '[' intcon ']' ]
// tipo ::= char | int | float | bool
// tipos_param ::= void // | tipo (id | &id | id '[' ']') { ',' tipo (id | &id | id '[' ']') }
// func ::= tipo id '(' tipos_param ')' '{' { tipo decl_var { ',' decl_var } ';' } { cmd } '}' // | void id '(' tipos_param ')' '{' { tipo decl_var { ',' decl_var } ';' } { cmd } '}'
// cmd ::= if '(' expr ')' cmd [ else cmd ] // | while '(' expr ')' cmd // | for '(' [ atrib ] ';' [ expr ] ';' [ atrib ] ')' cmd // | return [ expr ] ';' // | atrib ';' // | id '(' [expr { ',' expr } ] ')' ';' // | '{' { cmd } '}' // | ';'
// atrib ::= id [ '[' expr ']' ] = expr
// expr ::= expr_simp [ op_rel expr_simp ]
// expr_simp ::= [+ | - ] termo {(+ | - | ||) termo}
// termo ::= fator {(* | / | & ) fator}
// fator ::= id [ '[' expr ']' ] // | intcon | realcon | charcon // | id '(' [expr { ',' expr } ] ')' // | '(' expr ')' // | '!' fator
🧮 AFD - Autômato Finito Determinístico 📅 Versão 2.3 - 21/06/2025
👥 Autores