Tôi đã có một số mã giả Java sử dụng khoảng trắng thay vì dấu ngoặc nhọn và tôi muốn bạn chuyển đổi nó.
Tôi / O
Chương trình của bạn sẽ lấy một tệp đầu vào cùng với một số chỉ định có bao nhiêu khoảng trắng được sử dụng để thụt một khối. Đây là một ví dụ:
$ convert.lang input.p 4 // Chuyển đổi bằng cách sử dụng 4 khoảng trắng làm dấu phân cách khối $ convert.lang input.p 2 // Chuyển đổi bằng cách sử dụng 2 khoảng trắng làm dấu phân cách khối
Sau đó, nó sẽ chuyển đổi kết quả bằng cách sử dụng dấu phân cách khối đã chỉ định và đưa kết quả ra thiết bị xuất chuẩn.
Thịt của chương trình
Các khối mở với :
và mỗi dòng trong khối được thụt vào bằng cách sử dụng dấu phân cách khối, như mã Python.
trong khi (đúng): System.out.println ("Kiểm tra");
Mỗi cái :
được thay thế bằng a {
và a }
được gắn vào cuối khối.
trong khi (đúng) { System.out.println ("Kiểm tra"); }
Ví dụ
Đầu vào:
Kiểm tra lớp học công cộng: public static void main (String [] args): System.out.println ("Java là dài dòng ...");
Đầu ra:
$ chuyển đổi Test.pseudojava 4 Kiểm tra lớp học công cộng { public static void main (String [] args) { System.out.println ("Java là dài dòng ..."); } }
Đầu vào:
chủ yếu(): printf ("Xin chào thế giới");
Đầu ra:
$ chuyển đổi test.file 2 chủ yếu() { printf ("Xin chào thế giới"); }
Đầu vào:
def generic_op (the_stack, func): # Mã xử lý op chung b = the_stack.pop () nếu isinstance (b, list): nếu b: trở về đầu = b.pop (0) trong khi b: đầu = func (đầu, b.pop (0)) the_stack.push (trên cùng) khác: a = the_stack.pop () trả về func (a, b)
Đầu ra:
$ convert code 4 def generic_op (the_stack, func) { # Mã xử lý op chung b = the_stack.pop () nếu isinstance (b, list) { nếu b { trở về } đầu = b.pop (0) trong khi b { đầu = func (đầu, b.pop (0)) } the_stack.push (trên cùng) } khác { a = the_stack.pop () trả về func (a, b) } }
Chấm điểm
Mã có số lượng byte ít nhất sẽ thắng!