3

独自のコード構文ハイライターを作成しようとしていますが、コードの扱いを開始する方法を決定することだけが困難です。たとえば、各トークンを解析するには、正規表現のみを使用する必要がありますか? それとも、スペースごとにコードを分割する必要がありますか? それとも行ごと?二重一致を防ぐために、単語間の区切りを維持できなければならないことはわかっています。たとえば、「this、var、in、return など」のようなすべてのキーワードを検索したい場合、 this.indexでインデックスも一致することは明らかです。

それで、あなたの経験に基づいて、あなたの意見は何ですか?

4

2 に答える 2

1

これは良い質問です。独自のプログラミング言語を開発したときに同様の調査を行いました (概念実証のみ)。Douglas Crockford による JSLint と JSMin の実装を調査しました。彼がソース シンボルをシンボルごとに読み取ることでコードをトークン化していることがわかりました。このアプローチは、たとえばここここで見ることができます。実際には、コードを強調表示する前にトークン化が必要なだけなので、このアプローチが最適だと思います。これに続いて、エラー前提の少ない高度なパーサーを作成します。おそらく、さまざまな言語のハイライターを作成するときに、コードの再利用も増えるでしょう。

于 2012-12-19T09:21:13.340 に答える
0

既存のソリューションを検討することをお勧めします。私に関しては - 私はこの蛍光ペンに非常に感銘を受けました - http://softwaremaniacs.org/soft/highlight/en/

プラグインを使用してさまざまな言語を解析します - あなたはそれを見て良い経験をしているかもしれません.

于 2012-12-19T09:17:34.870 に答える