LLVMにロゴがあったなんて知らなかった。
LLVM 2.7 がリリースされたけれど、X86-64の対応が甘いのは相変わらずっぽい。
自分で解決しろってことか…。
いろいろやってみよう
左再帰
A : A B0
| A B1
...
| A Bn
| C0
| C1
...
| Cn
左再帰を消す
A : C0 A_tail?
| C1 A_tail?
...
| Cn A_tail?
A_tail : B0 A_tail?
| B1 A_tail?
...
| Bn A_tail?
if A < B < C
# 本体
end
a = A
b = B
if a < b
c = C
if b < c
# 本体
end
end
A < B < C
A < B <= C
A <= B < C
A <= B <= C
A > B > C
A > B >= C
A >= B > C
A >= B >= C
A > B && B < C → A > B < C
A > B && B < C → A > B < C
A < B && B < C && C > D && D < E → A < B < C > D < E
a = A
b = B
if a < b
c = C
if b < c
d = D
if c > d
e = E
d < e # 最後の条件判定の結果は使われていないのでif文を省略
end
end
end