構文解析時に使用される明示的なパターンの用語を提供する辞書を見つけるのに苦労しています。ネストに適用される10以上の異なるマークダウン解析ルール間の微妙な違いと、類似したシンボルを持っているように見える異なるマークダウン構文が完全に異なる解析ルールを持っている方法について書き込もうとしています。
私が達成しようとしているのは、名前が何なのか疑問に思うことのない構文パターンのユビキタスな構文解析規則の意味や用語を完全に明確にすることです。これらのパターンが何と呼ばれているのか、あるいは明示的な用語が含まれているのかさえわからないことに気づきました。どこかで役立つレキシコンを見つけられることを期待していましたが、明確で特定の言語に固有ではないものを見つけることができませんでした。つまり、私は「普遍的に明示的な」何かを探していました。
以下は、これらの解析パターンおよび/または解析ルールを呼び出す演算子を明示的に説明する明確な用語を見つけようとしている、よく知られたパターンの例です。私は彼らに意味を伝えることを望んでいるが「適切な」用語がわからない「作り上げた」名前を与えるように最善を尽くしました。
これは衒学的な運動のように思えるかもしれませんが、なぜこれが重要なのかわからないが、答えも知っている誰かがそこにいることを願っています!
-
は箇条書きを示し、#
はCommonMarkのレベル1の見出しを示します。)```
(GFMのコードフェンスの場合)_ ©
が©としてレンダリングされる方法など、特定のユニコード文字に変換されるシンボリックワードこの質問はソフトウェアエンジニアリングよりも語彙セマンティクスに関するものかもしれませんが、プログラミングで明示的である(または少なくとも特定のコンテキストで「明示的」を構成するものを完全に理解する)ので、プログラマーは完全な混乱と悲惨で激しい失敗を回避する方法です。これが、実際にこれらのパターンのいくつかが実際に何と名付けられているかを知るのに十分な語彙忍者エルディテを実際に見つけるかもしれない場所だと考えました。
"foo" [foo] (a + b) <a>...</a> { stuff; } /* comments and stuff */
-これらはグループとしてよく知られている名前を持たない傾向があります。ただし、それぞれに独自のよく知られた名前があり、形容詞としてよく使用されます(引用符付きのfoo、括弧で囲まれたfoo、タグ付きのfooなど)。# // --
-これらは単純に単一行のコメントであるか、まれに行修飾子です。トークンは行の先頭にある必要はなく、これらは通常、#1(newline | EOFが終了マーカー)とは区別して扱われません。! + and ++ async
-これらはprefix、suffix、または中置演算子は、それぞれ非終端記号の前、後、または間にあるかどうかによって異なります。これらは実際の文法で最も一般的です。なぜなら、すべてがそのような単純な形式に還元できるからです( https://en.wikipedia.org/wiki/Chomsky_hierarchy 要素言語構造の場合)。{ stuff; } <a> ... </a> @"..."
-単なるブロックです。実際には、改行は含まれている非終端記号で許可されるかどうかに関係なく使用できる別の文字であるため、これらは#1と区別されない傾向があります。© \n 0x64 :emoji:
-一般にエスケープシーケンスまたは時々エンコードされた文字(またはエンコードされたintまたはエンコードされたもの)と呼ばれます。そして、あなたが言及しなかった他の非常に一般的なものは、somethingdelimitedで、a, b, c
これは「カンマ区切り」です。
聴衆に応じて、これらは重要な場合と重要でない場合があります。 #3は実際の文法について話すときに最も重要です。エスケープシーケンスと区切りシーケンスは、ほとんどすべての言語で表示されます。引用されたもの、括弧で囲まれたもの、およびブロックは非常に一般的ですが、コンテキストではそれと呼ばれない場合があります。正しい用語は、情報を伝えようとしている相手によって異なります。