Rakudo Perl6 を見ると、言語の構文を変更/拡張でき、効率的で実装が難しくない構文解析と字句解析の手法があるのではないかと思います。
2 に答える
PEGを見てみましょう。拡張可能なPEG ( http://en.wikipedia.org/wiki/Parsing_expression_grammar ) に基づく言語があります。次に例を示します。
http://www.chrisseaton.com/katahdin/
http://www.meta-alternative.net/mbase.html
Perl5 と Perl6 の文法は PEG 形式で簡単に定義できます (私が間違っているかもしれませんが、現在の Perl6 はおそらくこの方法で実装されています)。
"いいえ"。[編集:質問の時点で]質問がPerlの字句解析/解析に関するものである場合、それはかなり難しいです。私たち (「私たち」の略歴を参照) には、Perl5 lexer があります。私たちは非常に優れたレクサー生成ツールを持っています (Unicode、マルチステート、「not regexp」が組み込まれた完全な正規表現)。Perl lexer を構築するのは王室の頭痛の種でした。字句解析部分を処理するために、50 の字句モード (それぞれに独自のトークン定義のセットを持つ) のようなものができあがりました。
私たちは解析部分を見つめていますが、今日は幸運で、直接それを行う必要がないため、これまでこれを回避してきました。どうやら言語はさまざまな識別子の動的な定義によってはあいまいであるため、ある時点でフレーズをどのように解釈 (解析) するかは静的に決定できません。あいまいさを処理する GLR パーサーを使用して実行できると考えており、可能な実行時の代替手段としてあいまいさを保持するだけです。数ヶ月後にお知らせします。