Tengo un pseudocódigo de Java que usa espacios en blanco en lugar de llaves, y quiero que lo conviertas.
I / O
Su programa debe tomar un archivo de entrada junto con un número que designe cuántos espacios se usan para sangrar un bloque. Aquí hay un ejemplo:
$ convert.lang input.p 4 // Convertir usando 4 espacios como delimitador de bloque $ convert.lang input.p 2 // Convertir usando 2 espacios como delimitador de bloque
A continuación, debe convertir el resultado utilizando el delimitador de bloque especificado y generar el resultado en stdout.
La carne del programa.
Los bloques se abren :y cada línea dentro del bloque se sangra usando el delimitador de bloque, como el código Python.
while (verdadero):
System.out.println ("Prueba");
Cada uno :se reemplaza con a {, y a }se agrega al final del bloque.
while (verdadero) {
System.out.println ("Prueba");
}
Ejemplos
Entrada:
Prueba de clase pública:
public static void main (String [] args):
System.out.println ("Java es detallado ...");
Salida:
$ convert Test.pseudojava 4
Prueba de clase pública {
public static void main (String [] args) {
System.out.println ("Java es detallado ...");
}
}
Entrada:
principal():
printf ("Hola mundo");
Salida:
$ convert test.file 2
principal() {
printf ("Hola mundo");
}
Entrada:
def generic_op (the_stack, func):
# Código de manejo de operaciones genérico
b = the_stack.pop ()
if isinstance (b, list):
si b:
regreso
top = b.pop (0)
mientras b:
top = func (top, b.pop (0))
the_stack.push (arriba)
más:
a = the_stack.pop ()
func de retorno (a, b)
Salida:
$ convert code.py 4
def generic_op (the_stack, func) {
# Código de manejo de operaciones genérico
b = the_stack.pop ()
if isinstance (b, list) {
si b {
regreso
}
top = b.pop (0)
mientras que b {
top = func (top, b.pop (0))
}
the_stack.push (arriba)
}
más {
a = the_stack.pop ()
func de retorno (a, b)
}
}
Puntuación
¡El código con la menor cantidad de bytes gana!