問題タブ [lexical-analysis]
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.
parsing - トークン ストリームを解析ツリーに変換する方法
入力からトークンをストリーミングするレクサーを構築しましたが、プロセスの次のステップである解析ツリーを構築する方法がわかりません。これを達成する方法に関する良いリソースや例はありますか?
python - Python 正規表現 - ワイルドカード表現から複数のグループをキャプチャする方法は?
ゼロ回または何度も発生する可能性のあるグループを含む Python 正規表現がありますが、後でグループのリストを取得すると、最後のグループのみが表示されます。例:
re.search("(\w)*", "abcdefg").groups
()
これはリスト ('g',) を返します
返す必要があります ('a','b','c','d','e','f','g',)
それは可能ですか?どうすればいいですか?
c++ - C++ で文字列を解析する方法
文字列を解析して、構文が指定されているかどうかを確認したい。
例:
ここで私の要件は、その後Z
に数字があり、その後に-
aR
があり、その後に数字が続きl
、その後に 、スペースが続き、最後にt
.
これ以外の場合は、エラーになるはずです。
このようなさまざまな種類の構文を解析する必要があります。必要な構文の種類ごとに関数を作成すると、気まずくなります。この問題は yacc や lex で解決できると聞きました。
誰でも私の問題に光を当てることができますか?
regex - FLEX:一度に複数のトークンを返す方法はありますか
flexでは、正規表現の1つの一致に対して複数のトークンを返したいと思います。これを行う方法はありますか?
ruby - Rubyでタブ区切りのテキスト行を解析するには?
each
Ruby の機能は少しわかりにくいと思います。テキスト行がある場合、each
ループは個々の文字ではなく、スペースで区切られたすべての単語を返します。
では、タブ文字で区切られた文字列のセクションを取得する最良の方法は何ですか? 現時点で私は持っています:
しかし、それは完全に正しくありません。
parsing - 実際のアプリケーションでレクサー/パーサーを効果的に使用したことがありますか?
最近、ANTLRの学習を始めました。レクサー/パーサーを一緒に使用してプログラミング言語を構築できることを知っています。
DSL やプログラミング言語以外で、レクサー/パーサー ツール (および知識) を直接的または間接的に使用して、現実の問題を解決したことがありますか? レクサーやパーサーの知識がなくても、平均的なプログラマーがこれらの問題を解決できるでしょうか?
javascript - 式の解析: トークン化する方法
Javascript コードで Java/Javascript のような式をトークン化することを検討しています。入力は式を含む文字列になり、出力はトークンの配列である必要があります。
このようなことをするためのベストプラクティスは何ですか? 文字列を反復する必要がありますか、それともこれを行う正規表現はありますか?
サポートできるようにするためにこれが必要です:
- 数値および文字列リテラル (一重引用符と二重引用符で囲み、引用符でエスケープ)
- 基本的な数学およびブール演算子と比較演算子 (+、-、、/、!、および、not、<、> など)
- 再帰によるオブジェクト アクセスのドットおよびブラケット表記 (foo.bar、foo['bar']、foo[2][prop])
- ネスト付き括弧
- 三項演算子 (foo ? bar : 'baz')
- 関数呼び出し (foo(bar))
eval()
セキュリティ上の理由から、またはそのようなものを使用することは特に避けたいと思います。その上、eval()
とにかく私のために表現をトークン化しません。
utf-8 - UTF-8 文字入力を読み取るフレックス (字句スキャナー) を作成する方法は?
flexは UTF-8 入力をサポートしていないようです。スキャナーが非 ASCII 文字を検出すると、それが EOF であるかのようにスキャンを停止します。
Flex に UTF-8 文字を強制的に使用させる方法はありますか? 実際にUTF-8文字と一致させたくないので、「。」を使用するときにそれらを食べてください。パターン。
なにか提案を?
編集
最も簡単な解決策は次のとおりです。
任意 [\x00-\xff]
「.」の代わりに「ANY」を使用します。私のルールで。