Strings をサポートするために、LLVM Kaleidoscope の例を拡張しました。次のように、仮想 Codegen メソッド impl を持つ StringExprAST を追加しました。
Value *StringExprAST::Codegen() {
StringRef r(Val);
return ConstantDataArray::getString(getGlobalContext(), r, false);
}
私は文字列を連結しようとしており、その Codegen メソッドで ConcatExprAST を持っています。ConstantDataArray 内のデータにアクセスしようとすると、getAsString() メソッドを使用するために Value* を ConstantDataArray* にキャストする必要があります。
これどうやってするの?
助けてくれてありがとう。