私は、用途は中括弧の代わりに空白といういくつかのJavaの擬似コードを持っている、と私はしたい、あなたがそれを変換します。
I / O
プログラムは、ブロックをインデントするために使用されるスペースの数を指定する番号とともに、入力ファイルを取得する必要があります。次に例を示します。
$ convert.lang input.p 4 // 4つのスペースをブロック区切り文字として使用して変換します $ convert.lang input.p 2 // 2つのスペースをブロック区切り文字として使用して変換します
次に、指定されたブロック区切り文字を使用して結果を変換し、結果をstdoutに出力します。
プログラムの要点
ブロックはで開き:
、ブロック内の各行は、Pythonコードのようにブロック区切り文字を使用してインデントされます。
while(true): System.out.println( "Test");
各々が:
で置換され{
、そして}
ブロックの末尾に追加されます。
while(true){ System.out.println( "Test"); }
例
入力:
パブリッククラステスト: public static void main(String [] args): System.out.println( "Java is verbose ...");
出力:
$ Test.pseudojava 4を変換します パブリッククラスTest { public static void main(String [] args){ System.out.println( "Java is verbose ..."); } }
入力:
メイン(): printf( "Hello World");
出力:
$ test.file 2を変換 main(){ printf( "Hello World"); }
入力:
def generic_op(the_stack、func): #一般的な操作コード b = the_stack.pop() isinstance(b、list)の場合: もしb: 返す トップ= b.pop(0) 一方、b: top = func(top、b.pop(0)) the_stack.push(トップ) そうしないと: a = the_stack.pop() func(a、b)を返す
出力:
$ code.py 4を変換 def generic_op(the_stack、func){ #一般的な操作コード b = the_stack.pop() isinstance(b、list){ もしb { 返す } トップ= b.pop(0) 一方、b { top = func(top、b.pop(0)) } the_stack.push(トップ) } そうしないと { a = the_stack.pop() func(a、b)を返す } }
得点
1
入力にコメントが含まれていないと想定できますか?
—
マーティンエンダー
@MartinBüttnerコメントが含まれる場合がありますが、コメントには「:」は含まれません。基本的にそうです。
—
フェーズ
有効なJavaソースで行がコロンで終わる通常の理由であるラベルについてはどうですか?
—
Peter Taylor
ラベルは行の始め以外には見たことがありません。
—
SuperJedi224 2015年
Javaがいかに嫌いかを思い出しました。
—
リルトシアスト2015年