uCoder | 1280 | Nível: 3 | Tempo Limite: 3
Compilador
Adaptado por Erich Rodrigues
Competição: Uni-FACEF - 1a. Maratona de Programação
Felisberto é um programador cansado e insatisfeito com os compiladores existentes para suas linguagens de programação preferidas. Certo dia, Felisberto teve a ideia de fazer o seu próprio compilador.
Felisberto já tinha estudado que um compilador é um programa que traduz um programa escrito em uma linguagem de programação para uma linguagem de máquina e que o processo de compilação é composto por várias etapas.
Então, Felisberto resolveu começar seu compilador por uma primeira etapa simplificada, analisando o código fonte e validando os tokens. Cada token é formado por um ou mais caractere, sendo os tokens separados por um ou mais espaços em branco.
Felisberto precisa de ajuda para fazer essa etapa inicial do compilador. Ele precisa validar se está ocorrendo um tipo específico de erro de compilação, que é quando um token não pertence à linguagem. Nesta primeira etapa, ele irá verificar somente se os tokens pertencem a um dos seguintes grupos:
Identificador: sequência de letras e dígitos, começada por letra (utilizada para nomear variáveis, constantes, palavras reservadas, etc.).
Número: sequência de dígitos.
Símbolo: considerar somente os seguintes quatro símbolos: = + ; >
Nesta primeira etapa não é necessário verificar a ordem que eles ocorrem e nem se falta algum símbolo, somente se estão todos grafados corretamente.
Entrada
Inicialmente um valor N é informado, indicando a quantidade de casos de teste a serem processados. Seguem-se N linhas, cada uma contendo uma string de, no máximo, 200 caracteres representando partes de um programa formado por elementos pertencentes aos grupos listados acima (identificador, número e símbolo).
Saída
Imprima OK se todos os tokens estiverem grafados corretamente, e ERRO caso algum token não pertença a linguagem definida.
Exemplo de Entrada | Exemplo de Saída |
---|---|
4 |
OK
|