Eu tenho um pseudocódigo Java que usa espaço em branco em vez de chaves, e quero que você o converta.
I / O
Seu programa deve levar um arquivo de entrada junto com um número designando quantos espaços são usados para recuar um bloco. Aqui está um exemplo:
$ convert.lang input.p 4 // Converter usando 4 espaços como delimitador de bloco $ convert.lang input.p 2 // Converter usando 2 espaços como o delimitador de bloco
Em seguida, ele deve converter o resultado usando o delimitador de bloco especificado e enviar o resultado para stdout.
A carne do programa
Os blocos são abertos :e cada linha dentro do bloco é recuada usando o delimitador de blocos, como o código Python.
while (verdadeiro):
System.out.println ("Teste");
Cada um :está substituído com um {, e uma }é anexado ao fim do bloco.
while (true) {
System.out.println ("Teste");
}
Exemplos
Entrada:
Teste de classe pública:
main public void estático (String [] args):
System.out.println ("Java é detalhado ...");
Resultado:
$ convert Test.pseudojava 4
Teste de classe pública {
public static void main (String [] args) {
System.out.println ("Java é detalhado ...");
}
}
Entrada:
a Principal():
printf ("Olá Mundo");
Resultado:
$ convert test.file 2
a Principal() {
printf ("Olá Mundo");
}
Entrada:
def generic_op (the_stack, func):
# Código genérico de manipulação de operações
b = the_stack.pop ()
se isinstance (b, list):
se b:
Retorna
top = b.pop (0)
enquanto b:
top = func (parte superior, b.pop (0))
the_stack.push (superior)
outro:
a = the_stack.pop ()
retornar func (a, b)
Resultado:
$ convert code.py 4
def generic_op (the_stack, func) {
# Código genérico de manipulação de operações
b = the_stack.pop ()
if isinstance (b, list) {
se b {
Retorna
}
top = b.pop (0)
enquanto b {
top = func (parte superior, b.pop (0))
}
the_stack.push (superior)
}
outro {
a = the_stack.pop ()
retornar func (a, b)
}
}
Pontuação
O código com a menor quantidade de bytes vence!