Estou fazendo um intérprete muito básico (usando meuprópria linguagem) para as funções da teoria dos conjuntos (união, interseção etc.). Estou codificando com C ++ e atualmente lendo e analisando a partir do arquivo .txt. No entanto, estou tentando fazer com que o código possa ser executado de maneira "comando por comando", sem que a janela de comando seja fechada. Espero poder ler e executar várias funções, uma após a outra, usando o retorno de carro.
Existe uma maneira de alterar meu analisador para que ele continue aceitando comandos / funções em vez de ler o arquivo .txt inteiro de uma só vez?
Respostas:
1 para resposta № 1Geralmente, ao "analisar" algo, a idéia é ler o token de cada vez e não se importar muito com linhas e outras coisas desse tipo.
Se seu idioma estiver estruturado dessa maneira, vocêvocê pode apenas ler seu idioma como um fluxo e, quando vir uma chamada para uma função (ou o que você quiser chamar), execute essa função à medida que avança [assumindo que você não compila com o código de máquina que requer a coisa toda para ser compilado de uma só vez, é claro - se for esse o caso, você estará trabalhando um pouco ...]
Mas se você quiser ler uma linha de cada vez, use o istream& getline(istream&, std::string&)
método. Ele lê uma única linha. Você então analisa essa linha e faz o que faz sentido com o resultado da análise.