ANTLRレクサーの範囲から文字を除外する

城野

ANTLRでトークンフラグメントを定義しようとしています。これは、Unicodeの範囲からの文字のシーケンスである!~、それは空白または任意の区切り文字を含めることはできません。

fragment RegularCharRange : '\u0021'..'\u007e' ;

fragment WhitespaceChar : [\u0000\t\n\f\r ] ;

fragment DelimiterChar : [()<>[\]{}/%] ;

以下は無効なANTLR構文ですが、私がやろうとしていることを表しています。

fragment RegularChar :  RegularCharRange & ~WhitespaceChar & ~DelimiterChar ;

定義すると、フラグメントは次のように使用されます。

Name : '/' RegularChar* ;

RegularCharユニコード範囲のリストとしての定義に頼らずに、小さなレクサー文法の読みやすさを維持するためのルールを構築するにはどうすればよいですか(これにより、空白文字と区切り文字のそれぞれの順序を学習して、それらが収まるようにする必要があります)前述の範囲内の正しい場所)?

編集:私はこのような正しい動作を達成できることを知っていますが、再利用可能なフラグメントからレクサールールを構築しようとしています:

fragment RegularChar
    :  ~( '\u0000'..'\u0020' | '\u007f'..'\uffff' | [\u0000\t\n\f\r ] | [()<>[\]{}/%] )
    ;
バート・キアーズ

いいえ、残念ながらここには近道はありません。範囲を個別に定義するか、EDITで行ったように否定します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定の範囲(ポート範囲)から数値の範囲を除外する

分類Dev

エスケープ文字を範囲から除外する

分類Dev

範囲から一部の文字を除外する-javascript正規表現

分類Dev

マクロの範囲から数式を含む行を除外する

分類Dev

Javaの文字列から40000– DFFFFの範囲にあるUnicode文字を識別して除外する方法

分類Dev

範囲から特定の列を除外する

分類Dev

範囲から複数のセルを除外する

分類Dev

ワークシート全体の範囲を除外する

分類Dev

ANTLRで文字範囲を解析する

分類Dev

文字列から特定のユニコード範囲の文字を削除する

分類Dev

範囲の文字列から複数の範囲を選択する

分類Dev

MYSQLからの日付の範囲からレコードを取得する-PHP

分類Dev

文字列から範囲を取得する

分類Dev

指定された範囲からいくつかの範囲を除外します

分類Dev

重複する日付/時刻範囲の配列から日付/時刻範囲を除外します

分類Dev

Teradata SQLのMODE-範囲から値を除外し、複数のテーブルを使用する

分類Dev

Googleスプレッドシートの単一の範囲から複数の範囲を分割する

分類Dev

Googleスプレッドシートの単一の範囲から複数の範囲を分割する

分類Dev

Worksheet_Change関数からセル範囲を除外する

分類Dev

文字列から範囲内の数値を抽出する方法

分類Dev

特定のワークシートから不明な範囲をコピーする

分類Dev

文字列から特定の範囲の文字をすばやく取得する3

分類Dev

文字範囲のあるPATINDEXは、発音区別符号(アクセント付き文字)を除外します

分類Dev

HashSet(または他のコレクション)から文字列を除外する

分類Dev

週の日付範囲文字列から日付を抽出し、次の日付範囲を出力するために7日を追加するマクロ

分類Dev

範囲を選択してから範囲サイズのサイズを変更するVBA

分類Dev

VBA Excel:複数のブックから範囲セルをコピーする

分類Dev

Webページの数値範囲からリンクを抽出する

分類Dev

整数のテーブルから範囲を抽出するSQLクエリ

Related 関連記事

  1. 1

    特定の範囲(ポート範囲)から数値の範囲を除外する

  2. 2

    エスケープ文字を範囲から除外する

  3. 3

    範囲から一部の文字を除外する-javascript正規表現

  4. 4

    マクロの範囲から数式を含む行を除外する

  5. 5

    Javaの文字列から40000– DFFFFの範囲にあるUnicode文字を識別して除外する方法

  6. 6

    範囲から特定の列を除外する

  7. 7

    範囲から複数のセルを除外する

  8. 8

    ワークシート全体の範囲を除外する

  9. 9

    ANTLRで文字範囲を解析する

  10. 10

    文字列から特定のユニコード範囲の文字を削除する

  11. 11

    範囲の文字列から複数の範囲を選択する

  12. 12

    MYSQLからの日付の範囲からレコードを取得する-PHP

  13. 13

    文字列から範囲を取得する

  14. 14

    指定された範囲からいくつかの範囲を除外します

  15. 15

    重複する日付/時刻範囲の配列から日付/時刻範囲を除外します

  16. 16

    Teradata SQLのMODE-範囲から値を除外し、複数のテーブルを使用する

  17. 17

    Googleスプレッドシートの単一の範囲から複数の範囲を分割する

  18. 18

    Googleスプレッドシートの単一の範囲から複数の範囲を分割する

  19. 19

    Worksheet_Change関数からセル範囲を除外する

  20. 20

    文字列から範囲内の数値を抽出する方法

  21. 21

    特定のワークシートから不明な範囲をコピーする

  22. 22

    文字列から特定の範囲の文字をすばやく取得する3

  23. 23

    文字範囲のあるPATINDEXは、発音区別符号(アクセント付き文字)を除外します

  24. 24

    HashSet(または他のコレクション)から文字列を除外する

  25. 25

    週の日付範囲文字列から日付を抽出し、次の日付範囲を出力するために7日を追加するマクロ

  26. 26

    範囲を選択してから範囲サイズのサイズを変更するVBA

  27. 27

    VBA Excel:複数のブックから範囲セルをコピーする

  28. 28

    Webページの数値範囲からリンクを抽出する

  29. 29

    整数のテーブルから範囲を抽出するSQLクエリ

ホットタグ

アーカイブ