fork download
  1. #!/usr/bin/env python3
  2.  
  3. input_text = """12
  4. ····
  5. VAR I
  6. ·FOR I=1 TO 31
  7. »»»»IF !(I MOD 3) THEN
  8. ··PRINT "FIZZ"
  9. ··»»ENDIF
  10. »»»»····IF !(I MOD 5) THEN
  11. »»»»··PRINT "BUZZ"
  12. ··»»»»»»ENDIF
  13. »»»»IF (I MOD 3) && (I MOD 5) THEN
  14. ······PRINT "FIZZBUZZ"
  15. ··»»ENDIF
  16. »»»»·NEXT"""
  17.  
  18. if __name__ == "__main__":
  19. split_input = input_text.split('\n')
  20. no_lines = int(split_input[0])
  21. indent = split_input[1]
  22. level = 0
  23. stack = []
  24. for line in split_input[2:]:
  25. line = line.strip('·»')
  26. if line.startswith('NEXT'):
  27. if not stack.pop().startswith('FOR'):
  28. print('Error on line "' + line + '", no matching FOR')
  29. break
  30. level -= 1
  31. elif line.startswith('ENDIF'):
  32. if not stack.pop().startswith('IF'):
  33. print('Error on line "' + line + '", no matching IF')
  34. break
  35. level -= 1
  36. print(level * indent + line)
  37. if line.startswith('FOR') or line.startswith('IF'):
  38. stack.append(line)
  39. level += 1
  40. while not len(stack) == 0:
  41. print('Missing End-Statement for "' + stack.pop() + '"')
  42.  
Success #stdin #stdout 0.02s 9984KB
stdin
Standard input is empty
stdout
VAR I
FOR I=1 TO 31
····IF !(I MOD 3) THEN
········PRINT "FIZZ"
····ENDIF
····IF !(I MOD 5) THEN
········PRINT "BUZZ"
····ENDIF
····IF (I MOD 3) && (I MOD 5) THEN
········PRINT "FIZZBUZZ"
····ENDIF
NEXT