序文
私はプログラミング言語を実行しました:mylang
開始
実際、ifを最初にすべきですが、「最初に単一ブランチ構造を説明し、次に複数ブランチ構造を説明する」という概念を維持するために、if
ソースコード
def parse_while(block):
global status
try:
foo = block.split('\n')[0][6:-2]
except:
return ['error','WhileSentenceError:wrong initial']
while(1):
F = comp(foo)
if(F[0] == 'error'):
return F
if(not F[0]):
break
for i in block.split('\n')[1:-1]:
i = i.strip()
val = comp(i)
if(val[0] == 'error'):
return val
if(status == MYL_BREAK_STATUS):
status = MYL_NONE_STATUS
return ['']
return ['']
ステータスグローバル変数については、[Python自作プログラミング言語を使用する]の第2章を参照してください
。
パラメータ
block
:コード
初めに
try:
foo = block.split('\n')[0][6:-2]
except:
return ['error','WhileSentenceError:wrong initial']
これを理解するには、forの構文を見てください。
while(<foo>){
<code>
}
これblock.split('\n')[0]
がwhile(<foo>){
6行目です。<foo>
したがって、-2を<foo>
使用するように頼む必要があります。
後で
while(1):
F = comp(foo)
if(F[0] == 'error'):
return F
if(not F[0]):
break
for i in block.split('\n')[1:-1]:
i = i.strip()
val = comp(i)
if(val[0] == 'error'):
return val
if(status == MYL_BREAK_STATUS):
status = MYL_NONE_STATUS
return ['']
別に見てください
初めに
F = comp(foo)
if(F[0] == 'error'):
return F
if(not F[0]):
break
式を確認してください<foo>
後で
for i in block.split('\n')[1:-1]:
i = i.strip()
val = comp(i)
if(val[0] == 'error'):
return val
if(status == MYL_BREAK_STATUS):
status = MYL_NONE_STATUS
return ['']
コードを実行して判断するbreak
やっと
return ['']
終わり
結論として
著者
ヒットロード
さようなら、クラスから出るのは終わった!
ヒットロードは時々更新されます、見るか去ってください!