Antlrを使用して.Net用のScript-Interpreterを作成しました。それはかなりうまく動作しますが、それが生成する構文エラーは恐ろしいものです。 初期の開発段階のライブラリはhereであり、使用される文法はecma-Script grammarに基づいています。意味のある構文解析エラーをantlrパーサーから受け取りました
今、大きな問題は、私は大規模なスクリプトファイルを持っていると私は
obj = { var1 = "hello"
var2 = "world};
を言うオブジェクト定義を持っているとき、私は予想ラインXYZで「構文エラーというメッセージを 『』期待していること、です。 しかし、カンマが足りないために発生したすべてのフォローアップエラーのために、xyzに実行可能な100個の代替リストを取得しないでください。
カンマがないために発生するエラーが1つありますか?予期せぬvar2トークンについて不平を言うならば、まったく問題ありません。
タンクは大変です。私はすでに最初のアプローチを使用しようとしました。問題は、他のすべての原因となった「初期エラー」をそのようにすることはできないということです。とにかく、2番目のアプローチは完全に機能し、文法で説明している方法で最も一般的な構文エラーを意味のあるものに警告することができました。 –