Compilador java utilizando jflex

2 respostas
javaprogramação
H

estou fazendo um compilador atraz de uma video aula , mais ao seguir os passos do video me deparei com um erro que na aula não esta tendo , o erro acontece na minha class compilador onde eu fiz dessa forma

1 package compiladores;

2

3 import java.io.File;

4

5 public class CreateClassLexer {

6   public static void main(String[] args) {

7      String cwd = System.getProperty(user.dir);

8        String path = String.format("%s/src/compiladores/%s", cwd, lexer.flex);

9       generarLexer(path);

10

11    }

12

13    public static void generarLexer(String path) {

14        File file = new File(path);

15       jflex.Main.generate(file);

16    }

17 }

e essa é a mensagem de erro que esta dando

Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method generate(String[]) in the type Main is not applicable for the arguments (File)

at compiladores.CreateClassLexer.generarLexer(CreateClassLexer.java:15)
at compiladores.CreateClassLexer.main(CreateClassLexer.java:9)

se alguem poder me informa o que eu fiz de errado seria de grande ajuda

2 Respostas

S

O compilador já te avisou o erro:
The method generate(String[]) in the type Main is not applicable for the arguments (File)

O método generate espera receber um array de String como parâmetro, mas você está tentando passar um objeto do tipo File.

B

Pra alguém que tenha esse problema no futuro. As versões mais novas do jflex são diferentes, então o jeito mais fácil é mudar o jflex para a versão 1.6.1

Criado 23 de setembro de 2021
Ultima resposta 5 de abr. de 2024
Respostas 2
Participantes 3