O analisador léxico é o primeiro passo para o desenvolvimento do nosso compilador para a linguagem Jack.

A partir a implementação que fizemos anteriormente, iremos suportar agora os tipos de tokens suportados pela linguagem Jack

Iniciando o projeto

Para começar, faça um fork do seguinte repositório, e depois faça um clone em uma pasta local:

https://github.com/profsergiocosta/lab-jackcompiler-java

<aside> 💡 Observem que ele tem mais coisa implementada que eu esperava.

</aside>

Se executarem o teste irá mostrar que não está passando:

Untitled

Reconhecendo números inteiros

Linguagens de programação utilizadas atualmente, suportam vários tipos de números, incluindo ponto flutuante e em diferentes bases, como binário, octal e hexadecimal.

O nosso analisador léxico desenvolvendo para o tradutor simples já reconhece números inteiros positivos, o que já é suficiente para a linguagem Jack.

Se testarmos o nosso analisar léxico atual com a seguinte entrada:

String input = "289";
Scanner scan = new Scanner (input.getBytes());
System.out.println(scan.nextToken());

Irá gerar a seguinte saída: