1

ユーザーが入力した不完全なコード フラグメントの AST を取得する方法はあるのでしょうか。たとえば、コードが次のようになっているとします。

String str = "This is some string";
int length = str.length +

そのようなコードの AST を取得できますか? これは構文的に正しくありませんが、それでも AST が必要です。

さらに、そのようなコードをテキスト エディターに挿入することはできますか? 理想的には、文字列として追加しますが、AST 形式でも可能です。

更新 1 :

正確には、ASTParser を何らかの方法で使用できるので、最後の行に次の AST のようなものを取得できます。

          =
      /       \
decl length    +
             /
        str.length

部分的な回答:

JDT のASTParserをsetStatementsRecoveryと共に使用すると、次の AST が生成されます。

         =
      /       \
decl length    str.length

それはまさに望ましい解決策ではありませんが、私のように誰かがそれを役に立つと思うかもしれません.

4

1 に答える 1

1

何を達成しようとしているのか正確にはわかりませんが、構文と使用するツールによっては、不完全な AST を取得する可能性があります。コードから、このような AST は次のようになります。

          __ = __
        /         \
decl length       fail
于 2012-09-05T18:35:41.983 に答える