<< 13/34 >>
First Last

変数の値によってパース結果が変わる

  $(VAR)
      X=hoge echo $${X}

VARが"all:"とかだと二行目はコマンドとして扱う必要があり、VARがカラだとタブは無視されてXに対する代入になる

そして、コマンドと代入だと、バックスラッシュやコメントのシャープの扱いが違う

  struct CommandStmt : public Stmt {
    Value* expr;
    StringPiece orig;
  };

しょうがないので、「タブではじまってるんだからたぶんコマンドでしょ」と予想してパースしておき、間違ってたらorigを再パースする