問題タブ [flex-lexer]
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 - Mac OS X 10.6でシェイクスピアプログラミング言語トランスレータspl2cをコンパイルして実行すると、警告/エラーが発生します
Shakespeareプログラミング言語を試してみたかったので、ここからダウンロードして、を使用してMakefileを実行しましたcd spl-1.2.1
Make
。
のコンパイルはspl2c
、いくつかの警告とともに実行されます。
そして、すべての例をコンパイルしようとすると、すべてがうまくいきません。
誰かがこれを修正するための正しい方向に私を向けることができますか?私の元のプロジェクトは、デバッグコンパイラに頼るのではなく、splを学習する予定でした(実際には、最終的には独自のコンパイラを作成したいのですが、今は最初のプロジェクトを使い続けたいと思います)。
、、、、を実行してOS X 10.6.2
います。gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
flex 2.5.35
bison (GNU Bison) 2.3
編集:gotoを必要としない単純なプログラム(例:hello.spl)の場合、最初のACT I /SCENEIを除くすべてのACT/SCENE行を削除することで問題を回避できます。
c++ - FlexでC++を使用するにはどうすればよいですか?
パフォーマンスが重要なものをC++にアウトソーシングするにはどうすればよいですか。例はありますか?
c++ - flex /yaccを使用してC++コンパイラを作成するにはどのくらいの時間がかかりますか?
lex /yaccを使用してC++コンパイラを作成するにはどのくらいの時間がかかりますか?
どこから始めればよいですか?
c - flex/lex の文字列リテラルの正規表現
私はフレックスを学ぶために実験していて、文字列リテラルを一致させたいと思っています。私のコードは現在次のようになっています:
私は 1 時間ほどバリエーションに苦労してきましたが、本来の方法で動作させることができません。私は基本的に、改行を含めることができず (エスケープされていない限り)、エスケープされた文字をサポートする文字列リテラルに一致することを望んでいます。
私はおそらく、貧弱な正規表現を書いているか、flex と互換性のない正規表現を書いているだけです。お知らせ下さい!
flex-lexer - flex/lexでcスタイルのコメントを取得するのが難しい
/ **/のようなcスタイルのコメントを消費するようにフレックスでルールを作成したい
私は以下を持っています
しかし、それは決して一致しません。なぜですか?私のコードがもっと必要な場合は、私に知らせてください。すべてを提出します。返信してくれた人に感謝します。
c++ - position.hh:46:エラー:「namespace」の前にunqualified-idが必要です
これが私のコードです:
ありがとう、スピーダー、それは素晴らしい。ネクロリス、ありがとうございます。二人とも編集ユニットの同じトラックにいます。完全なエラーレポートは次のとおりです。
location.hh:45、parser.h:64、scanner.h:25、scanner.ll:8からインクルードされたファイル:position.hh:46:エラー:「namespace」の前にunqualified-idが必要です</ p >>
location.hhは次のようになります。
また、これらのファイルはbisonによって生成されていることも付け加えておきます。この段階に到達するのは、flex++によって生成されたc++スキャナークラスをコンパイルしようとしたときです。flex --c ++ -oScanner.ccscanner.llを発行して.ccコードを取得します。
vim - 高度なvimオートコンプリート
flexを使用して字句解析プログラムを構築しようとしています。以下は、正規表現とそれに対応するアクションを示す行です。
vimのオートコンプリート機能によってregex1から再利用する方法はあり{printf("yada yada \n");}
ますか?そうすれば、regex2を書いている間に全部を書き直す必要はありませんか?
例えば
これは単語の補完を超えているので、これはvimで実行できるのだろうかと思いました。
TIA
parsing - 8 ビット組み込みシステムで使用可能な Flex/Bison のようなパーサーを作成する
avr-gcc ツールチェーンを使用して、C の AVR マイクロコントローラーでの演習として、単純な BASIC のような言語用の小さなインタープリターを作成しています。
Linux ボックスで実行するためにこれを書いていた場合、flex/bison を使用できます。8 ビット プラットフォームに限定したので、パーサーをどのようにコーディングすればよいでしょうか。
regex - lex(flex)で生成されたプログラムが入力全体を解析しない
私は比較的単純なlex/flexファイルを持っており、それが適切にトークン化されていることを確認するために、flexのデバッグフラグを使用して実行しています。残念ながら、私は常に2つの問題のいずれかに遭遇しています-フレックスが生成するプログラムが2、3のトークンの後で静かに停止するか、文字と文字列を認識するために使用しているルールが呼び出されず、デフォルトのルール代わりに呼び出されます。
誰かが私を正しい方向に向けることができますか?フレックスファイルとサンプル入出力を添付しました。
編集:生成されたレクサーが特定のルール「cdr」の後に停止することがわかりました。これはより詳細ですが、はるかに混乱します。ショートした変更済みlexファイルを投稿しました。
サンプル入力:
生成されたパーサーを介して入力を実行することによる完全な出力:
何かご意見は?生成されたプログラムは、入力の半分の後であきらめています!(参考までに、ファイルの内容を生成されたプログラムにリダイレクトして入力を行っています)。