問題タブ [jflex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - IntelliJ コミュニティ 12 CE + JFlex
このチュートリアルに従って、 IntelliJ 12用のカスタム言語プラグインを作成していますが、 jFlex プラグインに関していくつかの問題が発生しています。
プラグインが (IntelliJ プラグイン ブラウザー経由で) インストールされたとき、次のパスで構成されました。
- フレックス:
/Applications/IntelliJ IDEA 12 CE.app/tools/jflex
- フレックススケルトン:
/Applications/IntelliJ IDEA 12 CE.app/tools/jflex/idea-flex.skeleton
IntelliJ は、jFlex アプリケーションが見つからないと警告したので、jflex.dezip
から最新のパッケージをダウンロードして解凍しました。IntelliJ で jFlex プラグイン構成を更新しましたが、ビルドしようとすると新しいエラーが発生しました:./lib/jflex.jar
パスに構成されていません。
- フレックス:
/Users/skyler/jflex-1.4.3/jflex-1.4.3/bin
- フレックススケルトン:
/Users/skyler/jflex-1.4.3/jflex-1.4.3/src/default.skeleton
jar が に存在することを確認しました/Users/skyler/jflex-1.4.3/jflex-1.4.3/lib
。もちろん、エラーで参照されているパスでは jar が見つかりません。
だからここに私の質問があります:
- ファイルはどこにあり
idea-flex.skeleton
ますか? 見つからない。 - パスが正しくなるようにjflex実行可能ファイルを更新する必要がありますか、それともファイルを移動する必要がありますか? また、この変更により、言語プラグインの開発にjflexを使用すると問題が発生しますか?
tokenize - JFlex ルールの誤動作 - 間違ったルールが一致しました
私は (単純な?) JFlex トークナイザーを作成しています。その目的は、文字列を取得し、中国語のチャンク (またはハンスクリプトを使用) とラテンスクリプトの部分を分解することです。トークナイザーはブランド名に適用されます。私の使用例では、ブランド名にラテン語と中国語の名前の両方が含まれる場合があります (例: "Lenovo 联想")。
ブランド名には、さらに数字 (7up)、ハイフン (Hewlett-Packard)、アンパサンド (P&G) などを含めることができます。中国語と非中国語の名前がスペースや区切りなしで一緒に書かれている場合を除いて、私のトークナイザーはほとんど機能します。具体的には、成功した解析と失敗した解析の例を次に示します。
"Calvin Klein卡尔文.克莱" - "Calvin Klein" と "卡尔文.克莱" に正常に分割され、期待されるスクリプト (ラテン語とハン語) を持つものとしてタグ付けされます。
"圣威廉SAINT WILLIAM" - "圣威廉SAINT" (Han chars としてマーク) と "WILLIAM" (Latin としてマーク) に誤って分割されます。
「史努力比SNOOPY」 - 誤って単一の漢トークンと見なされます。
私のルールはかなり明白だと思っていましたが、結果はそうではないことを示しているようです. これが私のルールセットです:
私は何を間違っていますか?
ありがとう!!
編集
SourceForge JFlex メーリング リストのメンバーに尋ねたところ、そのうちの 1 人から返信がありました。JFlex 1.4.* は、16 ビットで表現できない Unicode 文字を処理できないことがわかりました。上記で指定した漢字の文字範囲の一部は 16 ビット値を超えるため、JFlex は混乱します。それらを正規表現から削除すると、すべてうまく機能しました。
参考: http: //jflex.de/manual.html#SECTION000101000000000000000
java - Jflex 正規表現
二重引用符で囲まれた一連の文字である文字列リテラルを認識する .flex ファイルを作成しようとしています。エスケープ文字はありませんが、それらを識別することができません。これが私の最新の試みです。
助言がありますか
java - "String""" を 2 つの文字列として一致させる正規表現を作成する方法
"String""" を 2 つの文字列として一致させる必要があります。
私はこれを学校のプロジェクト (Lexer の実装) に使用していますが、"Something"""のようなものが 1 つの文字列として一致する場合、状況に問題があります。
よろしくお願いします!
regex - Jflex キャプチャーマッチ
私は使用してJFlex
いますが、次のようなものと一致させたいです:
私のパターン:
|
しかし、それは前の行 (空白) だけでなくパイプ " " にも一致します。キャプチャを使用しようとしましたが、これを機能させることができません。助言がありますか ?
jflex - JFlex および NUL 文字
Java JFlexで「\ 0」を処理する方法を知っている人はいますか?? のようにマッチする正規表現としてエンコードしてみました
\0 { /* 何もしない */ }
しかし、うまくいきませんでした。ドキュメントには情報がありません。これが必要な理由は、C/C++ ソースからの文字列を処理しているためです。
よろしく。
jflex - JFLEX インストール エラー
大学の授業を行うために、Windows 8 64 ビット デスクトップに JFLEX をインストールしようとしています。
ファイルをダウンロードしてから、次の手順を実行しました。
次のアドレスにある JFLEX という名前のバッチ ファイルを開きます。
右クリックして編集オプションを選択すると、メモ帳が開きました。
次に、次の 2 行を変更しました。
2 行目は、ファイルを含むフォルダーです。
次に、このファイルを保存して閉じ、編集したばかりのバッチ ファイルをダブルクリックしました。
次のようなコマンド プロンプトが開きます。
このウィンドウはすぐに閉じます
私が間違っていることはありますか?
intellij-idea - カスタム言語の BNF ルール構文の強調表示
Grammar-Kit プラグインを使用して、IntelliJ 用のカスタム言語プラグインを開発しようとしています。定義されたトークンの構文の強調表示を簡単に提供できますが、要素またはトークンの親レベルで強調表示する方法がわかりません。
ここに簡単で汚い言語の例があります - https://github.com/carymrobbins/intellij-plugin-example
解決
@ignatov が示唆するように、Annotator クラスを拡張し、それを に登録しますplugin.xml
。以下の例では、メソッドcommand
を定義して要素を強調表示しています。visitCommand
regex - pos の正規表現。数値の倍数になる小数積分
..と書いています。
7 の正規表現を見つけたとしましょう。正規表現の 7 の倍数は [7|14|21|28] になります。
これは合理的に見えますか?私にお知らせください..