問題タブ [antlr3]
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.
java - Antlr がレクサー Java ファイルを生成しないのはなぜですか?
Antlr3 は Mylexer.java を生成しません。私はAntlrWorksを使用しています...
文法が次のように始まるとき
文法マイレクサー;
myParser.java を生成します
それは単純なことのように見えます..理由は何だろうか..そして解決策は..エラーメッセージは表示されません。
antlr - ANTLR: ANTLRWorks ウィザードの単純な例が機能しない
文法:
ウィザードで生成された文法です。ルール「開始」を追加しました。
インタープリターでの入力:
コンソールの結果:
スクリーンショット: http://habreffect.ru/files/200/4cac2487f/antlr.png
ANTLRWorks v1.4 ANTLR v3.2 のコンソールからも試してみましたが、同じ結果でした。
「abc」の代わりに「\nabc」と入力すると、問題なく動作します。STRING ルールで ESC_SEQ を右に配置すると、「abc」は機能しますが、「\nabc」は失敗します。
java - NetbeansとEOF
Java、ANTLR、Netbeansの初心者はこちら。
jdkとnetbeansをインストールしました。私はnetbeans6.8で新しいプロジェクトを開始し、ライブラリとしてantlr-3.2.jarを追加しました。また、AntlrWorksを使用してレクサーとパーサーのクラスを作成しました。これらのクラスの名前は、ExprParser.javaおよびExprLexer.javaです。それらをpath-to-netbeans-project/src/parsersという名前のディレクトリにコピーしました。
私はメインファイルを持っています:
アプリケーションは正常にビルドされます。私が読んでいる本には、プログラムを実行して何かを入力し、Ctrl + Z(私はWindowsを使用しています)を押してEOFをコンソールに送信する必要があると書かれています。問題は、NetBeansコンソールでCtrl+zを押しても何も起こらないことです。コマンドラインから実行すると、ctrl+zは正常に機能します。
これはおそらくあまりにも多くの情報ですが、私はそれを理解することはできません。ごめん。おそらく、3つの新しいテクノロジーを一度に学ぶのは良い考えではありません。
parsing - ANTLRトークンをチェックする方法はパーサーで1回以下しか使用されていません
Antlrで、たとえば次のようなルールがある場合:
それは受け入れるでしょう:「tokenatokenb」
TOKENAをオプションにしたい場合は、
次に、「tokenatokenb」または「tokenb」または「tokenatokenatokenb」を使用できます。
しかし、これはまた、それを複数回繰り返すことができることを意味します。とにかく、このトークンは1回以下で、1回以下であると言えますか?だからそれは受け入れるでしょう:
「tokenatokenb」または「tokenb」ですが、「tokenatokenatokenb」ではありませんか?
どうもありがとう
antlr - ANTLRの「セマンティック述語」とは何ですか?
ANTLRのセマンティック述語とは何ですか?
antlr - Antlrを使用したあいまいな入力の解析
私は数日間、テキストと数字で構成されるテキストを解析しようと試みてきました(文法ではこれを文と呼んでいます)。
INTで終わる文を解析する必要があるルールがあります
したがって、「購入したサイズ14の靴の数は3でした」という入力がある場合、sentence_with_intは文だけでなく一致します。これを行うためのより良い方法があると確信していますが、私はツールを学んでいます。
ありがとう、リチャード
unicode - antlr3 でのバイナリ ファイルのスキャン
バイナリ ファイルを解析し、文字を Unicode ではなく 16 進形式で指定したいのですが、可能ですか?
例: rule: '\x7F' ;
代わりに: rule: '\u007F' ;
ユニコードが 1 バイトにどのようにマップされるかがわからないためです。
lexer - ANTLRの「a」..「z」が$や£などのワイルドカードと一致するのはなぜですか
次の文法を実行すると:
そして私は入力「?test」を与えますなぜantlrはこれを有効な入力として受け入れるのですか?('a' ..'z')は小文字のアルファベット内の文字にのみ一致すると思いましたか?
antlr - ANTLR文法を使用して文字/記号を除外するにはどうすればよいですか?
ANTLR を使用して、さまざまな時間形式 (12:30、0945、1:30-2:45、...) の文法を作成しようとしています。これまでのところ、文法ファイルで定義されていない文字を入力しない限り、魅力的に機能します。
たとえば、次の JUnit テストを使用しています。
「15:123」が有効でないため、(予想どおり) 例外がスローされます。ただし、("15:23a") を試してみると、例外はスローされず、ANTLR はそれを有効な入力として扱います。
文法で文字を定義すると、ANTLR はそれらに気付くようで、必要な例外が再び発生します。
しかし、ユーザーが入力できるウムラウト、記号、およびその他のものを除外するにはどうすればよいですか (äöü{%&<>!)。したがって、基本的には、次のような構文を探しています。すべてに一致しますが、「0..9、:-」
antlr - Antlr - オブジェクト参照がオブジェクトのインスタンスに設定されていません
Antlr の仕組みについて何か知っている人はいますか? 開発サーバーでエラーが発生しました:
[NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。] Antlr.StringTemplate.CommonGroupLoader.LocateFile(String filename) +19 Antlr.StringTemplate.CommonGroupLoader.LoadGroup(String groupName, StringTemplateGroup superGroup, Type lexer) +67
まったく同じコードがローカルで正常に動作し、開発サーバーの bin フォルダーに antlr.runtime.dll が表示されます。
ガイダンスをありがとう、私は前にAntlrを使ったことがありません、ジャスティン