Introdução • Como usar • Exemplo • Documentação • Produções e Ações Semânticas • Créditos
O Matrix Script é uma linguagem simples de alto nível que tem como objetivo executar cálculos e visualização de matrizes.
Antes de clonar e rodar essa aplicação, você irá precisar do Git e do Python instalado em sua máquina.
Para clocar o projeto, execute pelo seu terminal:
# Clone o repositório
git clone https://github.com/jorge-g99/matrixscript-master
# Entre no repositório
cd matrixscript-master
# Instale as dependências
pip install numpy
# Rode a aplicação
py main.py
a = LOAD "[[1,2],[2,1]]"
b = LOAD "[[2,1],[1,2]]"
c = LOAD "[[3,0],[1,1]]"
d = a + b * c
PRINT d
Para rodar o exemplo no terminal, execute:
py main.py .\examples\simple_matrix.mx
Árvore de geração utilizada para o exemplo executado:
py main.py
- Executa o shell
py main.py help
- Executa o comando de ajuda
py main.py license
- Executa o comando de licensa
py main.py copyright
- Executa o comando de copyright
py main.py filePath
- Executa o parse de um arquivo
Observações:
- Tokens em caixa alta para execução dos comandos por convenção da linguagem
Grammar Action
------------------------ ---------------------------------
statement : PRINT expr print(expr.val)
| ID = expr ID.val = expr.val
expr0 : expr1 + expr2 expr0.val = expr1.val + expr2.val
| expr1 - expr2 expr0.val = expr1.val - expr2.val
| expr1 * expr2 expr0.val = expr1.val * expr2.val
| expr1 / expr2 expr0.val = expr1.val / expr2.val
| (expr1) expr0.val = expr1.val
| FLOAT expr0.val = float(FLOAT.val)
| INT expr0.val = int(INT.val)
| STRING expr0.val = string(STRING.val)
| ID self.ids[ID.val]
| LOAD STRING expr0.val = np.array(eval(STRING.val))
| RANGE INTEGER INTEGER INTEGER expr0.val = np.arange(p.INT0, dtype=np.int64).reshape(p.INT1, p.INT2)
| MAX expr0.val = expr1.max()
| COLUMNMAX expr0.val = expr1.max(axis=0)
| LINEMAX expr0.val = expr1.max(axis=1)
Projetos de código aberto utilizados:
GitHub @jorge-g99 ·