Skip to content

karlajusten/-Let-s-build-a-compiler---Pascal

Repository files navigation

Exercícios baseados nos videos: https://www.youtube.com/playlist?list=PLOfFbVTfT2vbJ9qiw_6fWwBAmJAYV4iUm

1# video:
	// crir doc's Demo.g4 e code.demo
	$ java -jar antlr-4.7-complete.jar Demo.g4
	$ javac -cp antlr-4.7-complete.jar *.java
	$ java -cp .:antlr-4.7-complete.jar org.antlr.v4.runtime.misc.TestRig Demo addition -gui code.demo

3# video
	$ java -jar ../lib/antlr-4.7-complete.jar -package de.letsbuildacompiler.parser -o ../src/de/letsbuildacompiler/parser -no-listener -visitor Demo.g4

5# video:
- http://jasmin.sourceforge.net/
descompactei e peguei o jasmin.jar e coloquei na pasta lib (criada agora) na pasta compiler.
	
$ java -jar lib/jasmin.jar helloWorld.j 
$ java HelloWorld

No final do video 7 apresenta como gerar árvore de derivação...

regras semanticas:
- ordem de execução da expresão numérica; resolvido de forma sintatica;
- declaração de variaveis numéricas;
- excessões implementadas:
	- não permitir declarar variavel sem tipo;
	- não deixar imprimir variaval sem estar declarada;
	- não permitir declarar a mesma variavel (com mesmo nome) mais de uma vez;
	- permitir ter variaveis dentro de um método, com o mesmo nome de uma variavel fora do método;
	- reconhcer como declaração dos paramatos de métodos como variaveis, acrescentando na tabela de simbolos;
	- garantir que metodos chamados já foram declarados e implementados;
	- ter duas funções com o mesmo nome, apenas se diferenciando pelos parametros;
	- não permite que a mesma função seja definida mais de uma vez (nome e parametros iguais);
	- fez if funcionar;
	- operatios <, <=, >, >=


Karla Aparecida Justen


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published