Carregando entrada de um arquivo em lex

1

Primeiro de tudo, eu não tinha certeza se postaria essa pergunta aqui ou no stackoverflow , mas aqui está minha pergunta, de qualquer maneira.

Além de usar input redirection , ou seja, ./code < inputFile.dat , existe alguma maneira de carregar meu arquivo de dados em um programa escrito em lex ?

Basicamente, eis como gostaria de poder carregar meus dados: ./code inputFile.dat

Existe alguma maneira de fazer isso?

    
por Fadi Hanna AL-Kass 06.03.2014 / 20:12

1 resposta

2

Normalmente você usaria

%%
main() { yylex(); }

que lê a entrada do stdin.

Para fazer a leitura de um arquivo

%%
main(int argc, char* argv[]) {
    FILE *fh;

    if (argc == 2 && (fh = fopen(argv[1], "r")))
        yyin = fh;
    yylex();
    return 0;
}   

% de lex & yacc da fonte O'Reilly.

    
por 07.03.2014 / 13:44