- 空白と改行を通常の空白と見なしたいと思います。
- また、特別な場合を許可するために改行を他の空白と区別したいと思います。
準拠した文法を最初に作成しようとしても失敗します。ここでBNF文法+ゴールドLALRパーサー。特殊文字NewLineとホワイトスペースを区別できません。
は文法です:
! ------------------------------------------------- Sets
{WS} = {Whitespace} - {CR} - {LF}
{ID Head} = {Letter} + [_]
{ID Tail} = {Alphanumeric} + [_]
{String Chars} = {Printable} + {HT} - ["\]
! ------------------------------------------------- Terminals
! The following defines the Whitespace terminal using the {WS}
! set - which excludes the carriage return and line feed
! characters
Whitespace = {WS}+ | {CR}{LF} | {CR} | {LF}
!NewLine = {CR}{LF} | {CR} | {LF}
MyNewLine = {CR}{LF} | {CR} | {LF}
私は本を拾い、gnu bison + gnu flexを使用しています。その素晴らしい。コンフリクトファイルの読み込みには熟練した学習曲線がありますが。 bison/flexの本は必須です。 –
@ acidzombie24:Ok。あなたはゴールドパーサーを落としたのですか? – menjaraz
はい。sdkvfsdngn –