------------------------------- 元プログラム ------------------------------- Sub main(argv[] as string) dim a(11) as int dim i as int call println("いきますよ〜") a[0]=1 a[1]=1 for i = 2 to 10 a[i]=a[i-1]+a[i-2] if i%2=0 then continue call println("fib:"+i+" = "+a[i]) next end sub ------------------------------- 解析後 ------------------------------- [プログラム] [変数宣言一覧] [変数宣言行](なし) [関数一覧] [関数](1つ) :[返り値なし関数ヘッダ] [変数宣言一覧] [文一覧] [返り値なし関数フッタ] [返り値なし関数ヘッダ] : Sub 関数名"main" 左カッコ"(" [引数一覧] 右カッコ")" 改行 [引数一覧] : [引数] (カンマ以降はなし) [引数] : 変数名"argv" [配列一覧] As [型]"string" [配列一覧] : [配列定義形式1] [配列定義形式1] :左中カッコ"[" 右中カッコ"]" (整数部はなし) [変数宣言一覧] :[変数宣言行](2つ) [変数宣言行] :Dim [変数一覧] as [型]"int" 改行 [変数一覧] :[変数ID] (カンマ以降はなし) [変数ID] :変数名"a" [配列一覧] [配列一覧] :[配列定義形式2] [配列定義形式2] :左カッコ"(" 整数?"11" 右カッコ")" [変数宣言行] :Dim [変数一覧] as [型]"int" 改行 [変数一覧] :[変数ID] (カンマ以降はなし) [変数ID] :変数名"i" [配列一覧] [配列一覧] :空文字 [文一覧]:( [文] 改行 )* (4つ) [文] :[関数呼び出し文] [関数呼び出し文] :Call 関数名"println" [配列形式2] [配列形式2] :左カッコ"(" [式] 右カッコ")" [式] :[定数] [定数] : 文字列"いきますよ〜" [文] :[代入文] [代入文] :[変数] [代入演算子] [式] [変数] :変数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[定数] [定数] : 整数値"0" [代入演算子] : "=" [式] :[定数] [定数] : 整数値"1" [文] :[代入文] [代入文] :[変数] [代入演算子] [式] [変数] :変数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[定数] [定数] : 整数値"1" [代入演算子] : "=" [式] :[定数] [定数] : 整数値"1" [文] :[for文] [for文] :For 変数名"i" = [式] To [式] 改行 [文一覧] Next [式] :[定数] [定数] : 整数値"2" [式] :[定数] [定数] : 整数値"10" [文一覧]:( [文] 改行 )* (3つ) [文] :[代入文] [代入文] :[変数] [代入演算子] [式] [変数] :変数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [代入演算子] : "=" [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[変数・関数] [変数・関数] : 変数・関数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [二項演算子] : [四則演算子] [四則演算子] : - [式] :[定数] [定数] : 整数値"1" [二項演算子] : [四則演算子] [四則演算子] : + [式] :[変数・関数] [変数・関数] : 変数・関数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [二項演算子] : [四則演算子] [四則演算子] : - [式] :[定数] [定数] : 整数値"2" [文] :[if文] [if文] :[単文if文] [単文if文] : If [式] Then [文] [式] :[演算] [演算] :[二項演算] | [単項演算] [二項演算] : [式] [二項演算子] [式] [式] :[演算] [演算] :[二項演算] | [単項演算] [二項演算] : [式] [二項演算子] [式] [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [二項演算子] : [四則演算子] [四則演算子] : % [式] :[定数] [定数] : 整数値"2" [二項演算子] : [比較演算子] [比較演算子] : == [式] :[定数] [定数] : 整数値"0" [文] :[exit文] [exit文] :[ループ脱出文] [ループ脱出文] :Continue [文] :[関数呼び出し文] [関数呼び出し文] :Call 関数名"println" [配列形式2] [配列形式2] :左カッコ"(" [式] 右カッコ")" [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[定数] [定数] : 文字列"fib:" [二項演算子] : [四則演算子] [四則演算子] : + [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [二項演算子] : [四則演算子] [四則演算子] : + [式] :[演算] [演算] :[二項演算] [二項演算] : [式] [二項演算子] [式] [式] :[定数] [定数] : 文字列" = " [二項演算子] : [四則演算子] [四則演算子] : + [式] :[変数・関数] [変数・関数] : 変数・関数名"a" [配列形式1] [配列形式1] : 左中カッコ"[" [式] 右中カッコ"]" [式] :[変数・関数] [変数・関数] : 変数・関数名"i" [返り値なし関数フッタ] :End Sub 改行 お疲れ様です。ここまで手作業で構文解析して疲れました…