Analisador Léxico

Olá pessoal, tudo bem?

Bom, estou desenvolvendo um Analisador Léxico em JAVA, mas estou tendo dificuldades na implementação. A minha duvida é qto a separação dos tokens (lexemas)… Terei que separar caracter por caracter e ir armazenando os caracteres para fazer após o termino da palavra a verificação se é indetificador, delimitador ou palavra reservada.

Como que eu poderia fazer?

Se alguém puder me ajudar ficarei agradecida :lol:

Abraços,
Patrícia.

Uma dica, estudar expressões regulares para os testes:
“Um amigo meu fez um na cadeira de compiladores e ele usou nos testes expressões regulares, economizou muitas linhas de código.”

Olha, acho que você vai ter que percorrer todos os caracteres e ficar verificando junto ao seu autômato.
Ex.: vai percorrendo os caracteres até tu conseguir formar uma das possibilidades de criação do seu autômato. Quando você encontrar, cria um token e depois recomeça o processo até encontrar outro token.
Deu pra entender?

Qualquer coisa, tamos aí…
[]'s.

[quote=paulo.marcelo]Uma dica, estudar expressões regulares para os testes:
“Um amigo meu fez um na cadeira de compiladores e ele usou nos testes expressões regulares, economizou muitas linhas de código.”[/quote]
Isso varia muito de faculdade pra faculdade. Na minha, por exemplo, o professor da cadeira de compiladores não deixa usar expressões regulares. Ele quer que as coisas sejam feitas “na unha” mermo…

[]'s.

Tem que ser guerreiro então kaique. HEHEHEH

vc pode fazer da seguinte maneira… primeiro varer o codigo em busca de caracteres invalidos depois ir separando os caracteres em tokiens como nas linguagens as variaveis e os comandos são separados por espaços ou virgula ou sinais aritimeticos ou logicos vc pode usar estes delimitadores… vc pode usar um objeto tokien e a cada tokien que encontrar gerar um objeto tokien e guardar na lista de tokiens junto coloque informações como linha e coluna pois elas serao uteis mais tarde no analisador sintatico e semantico coloque tbm os operadores dentro destes objetos e ao final veja qual o tipo deles se são identificadores, comandos, operadores aritimeticos, logicos basicamente um tokien tera alem da informação do proprio tokien tbm tera sa linha, coluna e seu tipo… coloque todos em uma lista apos classificados seus tipos e depois no semantico e sintatico trabalhe com esta lista…

Quando fiz na faculdade usamos o C++ para desenvolver, lembro que tinhamos uma base de dados, chamada base de tokens, assim ficamos pegando caracter por caracter e verificando seu codigo nesta base…acho que vc também pode fazer isso em java usando o comando charArt, vc informar o indice e ele pega o caracter ai vc ira conseguir ir na base ver se existe…faça um laço para percorrer a String e pegar o caracter…

acho que isso funciona…

abraço

Acho que posso te ajudar.

Já fiz dois compiladores.

Mandei uma MP para você.

Preciso saber o que você já tem pronto.

Abraços.

Obrigada a todos pela ajuda!

Vou ir tentando aqui, qualquer coisa voltarei novamente…

Abraços, valeu!!!

:stuck_out_tongue: