Flexを使用してトークンを入力ストリームに戻す方法はありますか?私はyyunlex()
のようないくつかの機能を想像しています。Flex(Fast Lexical Analyzer)を使用してアンレックスする方法は?
3
A
答えて
2
あなたはいくつかの選択肢があります。
unput(ch)
を使用して、トークンの各文字を入力ストリームに戻すことができます。ここで、chは文字です。この呼び出しは、chを入力ストリームの次の文字(次の文字でスキャン対象とみなす)として置きます。だから、トークンマッチ中に文字列を保存すると、これを行うことができます。
yyless(0)
を調べると、トークンのすべての文字を入力ストリームに戻すことができます。私はこの1つを使用したことはありませんでしたので、問題があるかどうかはわかりません。整数n
を指定すると、最初のn文字以外のすべてを入力ストリームに戻すことができます。
これをスキャン/解析中に頻繁に行う場合は、lexを使ってトークンを作成し、トークンを独自のデータ構造に配置して解析することができます。これは、bisonとyaccが生成したyyparse()
関数が行うことに似ています。
3
マクロREJECT
があります。トークンをストリームに戻し、最初に一致したものと同じように他のルールとの一致を続けます。 @ Kizaruの答えをストリームに戻すだけでいくつかのチャーを入れたいならば。
例は、スニペット:
%%
a |
ab |
abc |
abcd ECHO; REJECT;
.|\n printf("xx%c", *yytext);
%%
関連する問題
- 1. 小文字の単語に一致するが、特定の単語を除外するFlex(The Fast Lexical Analyzer)
- 2. Lexical Analyzerをコンパイルしていないフレックス - マクロのエラー
- 3. quickfixを使ってfix + fastを実行する方法は?
- 4. WindowsでFlexを使用する方法
- 5. QTPを使用してFlexアプリケーションをテストする方法10
- 6. FlexでVideoDisplayを使用してライブストリーミングビデオを表示する方法
- 7. Flex 3 Builderを使用してデスクトップアプリケーションを構築する方法
- 8. Android用AIR Flex Mobile SDKを使用してビデオをストリーミングする方法は?
- 9. Custom ElasticSearch Analyzerを使用する
- 10. 行う方法を、FlexのコードレビューのためのFlex PMDを使用してFlexのコードレビューのためのFlex PMD
- 11. のFlex 3を使用してFlexの
- 12. `analyzer`から` DartType`クラスを使ってサブタイプを取得する方法は?
- 13. Flex DataGridでは、ArrayCollectionをXMLファイルのdataProviderとして使用する方法は?
- 14. Flexを使用してローカルにデータを格納する方法は?
- 15. Flexでは、ブラウザでコマンドショートカットを使用する方法は?
- 16. FlexでOpenLayersを使用する方法はありますか?
- 17. LuceneでSpanQueryとPhraseQueryでAnalyzerを使用していますか?
- 18. 複数のターゲットを使用してsconsをfail-fastにする方法はありますか?
- 19. AdvancedDataGrid dataField - flexでサブアレイまたはオブジェクトを使用する方法?
- 20. Silverlight Fastのプリズムを学ぶ方法は?
- 21. GoogleマップAPI V3をFlex 4アプリケーション用に使用する方法
- 22. Subversionを使用してFlexプロジェクトをブランチングする最善の方法
- 23. XMLファイルを使用してFlex 3のPopUpMenuButtonにアイコンを追加する方法
- 24. Flex/Actionscriptを使用して画像を全画面に拡大する方法
- 25. Flex Antタスクを使用してscriptdefからproperyを取得する方法
- 26. css flexプロパティを使用してコンテナの幅を固定する方法
- 27. httpservicesを使用してFlexでWCFサービスリンクを取得する方法
- 28. FLEX/ASを使用しているプレーヤー
- 29. Flash ProfessionalでFlex SOAPクラスを使用する方法
- 30. Flex Hero 4.5でParsleyフレームワークを使用する方法
は、このは、Adobe Flexの関連質問であるか、それは、GNU-フレックス/ wのタグ付けされなければなりませんか?問題は細部に欠けているので、私は分かりません。 – JeffryHouser
タグをflexからgnu-flexに変更しました。前者はAdobe Flexフレームワークを指し、後者は高速語彙アナライザを指します。 – Kizaru
@キザルありがとう – saadtaame