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!