ragel

    0

    1答えて

    私は過去2日間Ragelを学びたいと思っており、Ragel構文に関連するいくつかの問題に直面しています。私の目標は、C + +でホスト言語としてのRegexコマンドを認識するパーサーを書くことです。今の私は、パーサーで、次のコマンドを認識しようとしています - :LoadSdf [0-9]+ 以下 は私がしようとしている次のコードである: - :私は次のエラーを取得する #include <ios

    0

    1答えて

    私はRagelを初めて使い、Regex式の特定のパターンを解析しようとしています。一致が見つかった場合にはアクションdoneを実行し、1つの文字が見つからなくても一致しない場合はparse_errorを実行します。ここで 私が書いたコードは次のとおりです。 #include <iostream> #include <string.h> #include <stdio.h> %%{ act

    0

    1答えて

    N(N < = 20000000)までの適切な除数の和を求めなければなりません。私は複雑さO(N * log(N))でこの関数をあらかじめ計算しています。これは最大4秒かかります。それを最適化するにはどうすればよいのでしょうか。 例:N = 10答えが86であり、N = 1000の答えが823080 int f(){ for(LL i = 1; i <= m; i++){ f

    1

    1答えて

    次のような場合に内部テキストをキャプチャするにはどうすればよいでしょうか? inner_text = any*; tag_cdata = '<![CDATA[' inner_text >cdata_start %cdata_end ']]>'; 問題はcdata_endアクションがinner_textが]に一致する可能性があるという事実による数回発射するようにそれはそう、です。

    0

    1答えて

    したがって、私はラエルの状態マシンを実行することを望んでいた単純な文字列を持っています。 key1 = value1; key2 = "value2"; KEY3 =ここに値3 は私ragelの簡易版 # Key Value Parts name = (token+) %on_name ; value = (ascii+ -- (" " | ";" | "," | "\r" | "\n" |

    0

    1答えて

    私のプロジェクトでは、HTML文書からリンクを抽出する必要があります。 https://github.com/brianpane/jitify-core/blob/master/src/core/jitify_html_lexer.rl (ここでは言及:http://ragel-users.complang.narkive.com/qhjr33zj/ragel-grammars-for-html-

    0

    1答えて

    Ragelを文字列解析に使用するC++プロジェクトを継承しました。 私はこれが行われたのを初めて見ており、誰かがC++の代わりにRagelを使用して文字列を解析する理由を理解したいと思いますか?

    0

    1答えて

    私は、Lin Descriptor Fileの解析に使用できるPCアプリケーションの開発の一環として、可能なパーサーについて研究しています。現在のパーサーアプリケーションは、flex-bison解析手法に基づいています。現在、パーサーを再設計する必要があります。なぜなら、現在のパーサーは特定のエラーを検出できないからです。 私はこれまで正規表現(Regex:https://en.wikipedia

    1

    2答えて

    ragelを見ると、ファイルを合理的に読み込む方法を理解できません。私が理解する限り、それはトークンの途中で壊れていないメモリバッファを必要とします。これは明らかに、特にトークンのサイズがわからない場合、実装するにはかなりの労力が必要です。文字列の改行、エスケープなどがあります。もし私がそれをすべて実装していれば、私はもうラーゲルが必要なのか分かりません。 良い方法はありますか?

    0

    1答えて

    私はホストとしてRagelとC++を使用していくつかのコマンドを解析しています。コマンドはファイルから読み込まれ、次の構文を使用して解析されます。 コマンドの構文は次のとおりです Signal_representation { [<signal_encoding_type_name>: <signal_name> ([, <signal_name>]) ;] } を今ここに、上記の構文であ