| back | 1501-1550 | 1551-1600 |
1601-1650 |
| 1600 | Re^15: もう一つ質問 | コメント数: 10件 |
| みずほちゃん | | 2001/09/09 (日) 21:50 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| > # リテラルの最終行が空白とデリミッターだけの時に > # おかしくなりますが、これは自分でなんとかしたいと思います。 LiteralStringProc にある if not FIsStartToken then Inc(FP); のせいでした。 PercentProcの方であらかじめinc(FP)して対処しました。 本田さんにはかなり迷惑をかけましたが、 今のRubyFountainでほぼ完成のレベルに達したと思います。 後はヒアドキュメントですが、これはちょっと無理な気がします。 ヒアドキュメントは str = <<EOF リテラル ほげ EOF のようなもので、最初のEOFから次のEOFまでが文字列の リテラルになります(EOFの部分には任意の文字列を使うことができます)。 # ヒアドキュメントはPerlにもあるリテラルなので、 # PerlFountainに実装されるのを待つつもりですが(^^; | ||
| 1599 | Re^14: もう一つ質問 | コメント数: 12件 |
| みずほちゃん | | 2001/09/09 (日) 21:19 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| うう。結局、本田さんに頼りきってしまってすいませんでした。 私の勘違いしていたところもあって、 少し修正しないといけませんが、頂いたRubyFountain.pas でほぼいけそうです。 # リテラルの最終行が空白とデリミッターだけの時に # おかしくなりますが、これは自分でなんとかしたいと思います。 あと、二つほど質問。 一つ目 元の版の SlashProc では「/」の扱いを決定するために 「/」の直後に空白があるか無いかを調べています。 本田さんの版で FP^ を (FP + 1)^ にしているということは 私のコードが間違えてます? 二つ目 PercentProc の最初に (FP + 1)^ in ['q', 'Q', 'r', 'x'] で判定しているのはこれの方が処理が速いからですか? # ところで、定数の「=」を揃えているのって趣味ですか。 | ||
| 1598 | 引用行の強調表示 | コメント数: 4件 |
| DR-X | | 2001/09/09 (日) 16:52 | |
| 本田さん、こんにちは。DR-Xです。 少し前にも話題になっていたのですが、引用行の強調表示に チャレンジしています。 先頭が設定した記号だと引用行になるというものなのですが、 パーサーを拡張してSourcePosが0のときに記号があるかを 判別すると、折り返しされた2行目の先頭に記号があっても 引用になってしまいます。 論理行の先頭だということがわかればいいのですが、なにか 方法はないでしょうか。 よろしくお願いします。 | ||
| 1597 | Re: TEditorのCBC5へのインストール | コメント数: 0件 |
| 本田勝彦 | | 2001/09/09 (日) 10:58 | |
| 添付のヘルプファイルに 「C++Builder
での利用」というトピックが ありますので、一度見てやって下さい。 最新版のヘルプファイル hehlp232.lzh にある記述の方が内容が濃かった かもしれません。 | ||
| 1596 | TEditorのCBC5へのインストール | コメント数: 1件 |
| 笹川 賢一 | | 2001/09/09 (日) 07:42 | |
| http://www5a.biglobe.ne.jp/~sasagawa/MLEdit/ | ||
| TEditorのC++Biulder5(以下BCB5)へのインストールがうまくいきません。 ご教示ください。 (1)hedit169.lzhをダウンロードし同名のフォルダーに解凍して、bcb5のLIBフォルダーに置きました。 (2)DSGNINTF.pasというファイル探して、(1)のフォルダーにコピーしました。このファイルはCBC4(5ではなくて)に入っていました。 (3)CBC5でコンポーネントのインストール->新規パッケージに追加を選択、ユニットファイル名はhedit169のHEDITREG.PASを入れました。パッケージ名はHeditと入れました。 (4)OKにするとコンパイルする必要がある旨のメッセージがでます。 エラーが24個でます。DsgnIntfが問題のようです。 | ||
| 1595 | Re^13: もう一つ質問 | コメント数: 13件 |
| 本田勝彦 | | 2001/09/09 (日) 02:50 | |
| 最新版はまだ見せて頂いておりませんが、PrevToken
データフィールドが あることに気が付きました。使えるようです。 取りあえずアップロードしましたので、試して見て頂けますでしょうか? SlashProc, PercentProc 回りを勝手にいじらせて頂きました。 http://compodev.at.infoseek.co.jp/arc/rubyfountain_kb1.lzh おまけで、Imagebar に対応した TDebugEditor も更新しました。 http://compodev.at.infoseek.co.jp/arc/debugeditor.lzh | ||
| 1594 | Re^3: Pentium 75MHz | コメント数: 0件 |
| 本田勝彦 | | 2001/09/09 (日) 02:45 | |
| yahoo
オークション(要するに中古品)にしては、かなりの美品をげっと 出来たので、ちょっと嬉しい気分です。足りなかったお脳もげっと出来たし (32M2,000円)メモリが届いたら、ノートの復活です。 古いデータは夜ゲイツさんのおかげで何とかなりそうだし。 皆さんのご厚情に多謝。 | ||
| 1593 | Re^5: Pentium 75MHz | コメント数: 0件 |
| 本田勝彦 | | 2001/09/09 (日) 02:42 | |
| >
来週送りますので、送り先のメールお願いします。 会社の住所をメール致しました。お手数をお掛けいたしますが、 よろしくお願い致します。 | ||
| 1592 | Re^4: Pentium 75MHz | コメント数: 1件 |
| 夜ゲイツ | | 2001/09/08 (土) 09:20 | |
| > よろしかったら、お譲りくださいませんでしょうか?実は諦めていたデータが > まだ少しあるので、取り出すことが出来ると有り難いんですよね。 > ってHD合わなかったりして(^^; Ne <> Ns 来週送りますので、送り先のメールお願いします。 | ||
| 1591 | Re^12: もう一つ質問 | コメント数: 14件 |
| みずほちゃん | | 2001/09/08 (土) 01:57 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| うーん。手もとRubyFountainは ほとんどこれと同じことをしています。 FElementIndex を使ったメソッドテーブルを使用する場合、 それぞれの数字に対して、メソッドテーブルに登録できるメソッドは 当然、一つのメソッドだけです。 %Qと%rのようなほとんど同じリテラルを扱う場合、 区切り文字を探す処理は同一メソッドで構わないのですが、 上の二つではトークンが違うためどのリテラルの続きになっているか 確認する必要があります。そのためトークン の情報を保持する新しいフィールドが欲しいという要望を出しました。 本田さんが提案された方法は%Qのようなリテラルの トークンの種類が一つの時(%Q、%q、%xは表現の仕方は違いますが、 トークンとしては一種類です)には良いのですが、 Rubyのような文法ではちょっと無理があります。 # 日本語が下手なので、あまり上手く表現できません。 とりあえず最新版を http://www.portnet.ne.jp/~mzh/archive/rbft-test.zip に置いておきます。 # メソッド名とか滅茶苦茶ですが TRubyFountainParser.NormalTokenProc で FElementIndex の値を 参照して、FTempMethodTableのメソッドテーブルで処理しています。 登録してあるメソッドは TmpMethod です。 | ||
| 1590 | Re^2: Pentium 75MHz | コメント数: 1件 |
| ゆうきひろ | | 2001/09/08 (土) 00:48 | |
| http://homepage2.nifty.com/ultla7/mozart/_start.htm | ||
| > 5,000円でっせ。Ns 買った頃の Pentium
ノートって百万してたような(^^; うーむ、すごい。ただひたすらすごい(^^;)。 http://www.u-comnet.com/ ↑でPentium 75MHzクラスのノートPCを探してみましたが、さすがに5千円というのはないでした。7千800円くらいが最低だったような。詳細を見てないのでマシンの程度がわかりませんが。 > なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。 > Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが > 少し「だる」になるかもしれませんが、勘弁してね。 なるほど。TEditor の軽快さはここに原因があったのか。思わず拝みたくなります(^^;)。 | ||
| 1589 | Re: TStringsPrinter | コメント数: 0件 |
| 本田勝彦 | | 2001/09/08 (土) 00:30 | |
| > はじめまして。 どうもです。ようこそ。 > このたびDelphi6でTStringsPrinterを使ってみようと思ったのですが、 > インストールが上手く行かず困っています。 ここのログを少し遡ったところに Kobayashi さんの発言がありましたので、 以下に引用します。 >TStringPrinterでも コメント数: 1件 > Kobayashi | gs_kobayashi@anet.ne.jp 2001/07/31 (火) 02:18 >TStringPrinterも同様の対処が必要でした。一応ご報告(^^; > >ちなみに、新規パッケージとしてインストールする場合には、 >requireにdesignide.dcpを追加しないと「proxies.dcuが見つからない」とエラー >がでます。 >思いっきりヘルプに書いてあったのに気づかずに探し回ってました・・・ ということだそうです。試して見て下さいね。 | ||
| 1588 | Re^3: Pentium 75MHz | コメント数: 0件 |
| 本田勝彦 | | 2001/09/08 (土) 00:24 | |
| >
5,000円といえば今はスイッチングハブ1台分位の値段ですね。 それは、高級な部類のでわ? > Pentium75MHzはテスト用なんですか?それとも主力開発マシン? テスト用のような、そうでないような・・・会社にいて思いついた時に試せるので、 便利なんですよね。 > どっちにしろGHzが主流の昨今、凄い話です。私も改めて自分の > PCを大切にしようと思いました。 PC9801F2もまだ家にはあったりします。初めて買ったヤツなので 捨てられないだけなのですが。 | ||
| 1587 | Re^3: Pentium 75MHz | コメント数: 2件 |
| 本田勝彦 | | 2001/09/08 (土) 00:19 | |
| > それと、元祖Ne(486SX33)をオプションCPU(DX2 50Mhz
当時11万)に換装 > した物を持っていますが、なんならプレゼントしましょうか? よろしかったら、お譲りくださいませんでしょうか?実は諦めていたデータが まだ少しあるので、取り出すことが出来ると有り難いんですよね。 ってHD合わなかったりして(^^; Ne <> Ns > 当時カラーノートがやっと100万切ったので飛びついて買った物ですが、あまり > 高かったので、捨てられなかったんですが、使う事もないので活躍の場があれば > Neも喜ぶ事でしょう。 そそ、昔は高かった。逝ったヤツも70万程度だったような・・・ | ||
| 1586 | Re^3: Pentium 75MHz | コメント数: 0件 |
| 本田勝彦 | | 2001/09/08 (土) 00:16 | |
| > うちでは PC9821Ne3(i486DX2 50MHz) に > Linux を入れて、サーバーとして活躍してもらっています。 おぉ、ここにも98ユーザーが(^^) > Pentium 75MHzくらいで5000円くらいなんですね。 > 一度安いノートを探してみようかな。 あの出品量を見ると、よくまぁ売れたモンだなぁなどと思ってしまいますね。 | ||
| 1585 | Re^11: もう一つ質問 | コメント数: 15件 |
| 本田勝彦 | | 2001/09/08 (土) 00:14 | |
| > うーん。多分、まずいです。 > > %rも > > %r|^hoge > > | > > のようなリテラルをとりますから。 toQliteral, toQQliteral, toXLiteral, toRLiteral トークンを用意する。 これらを取得するためのメソッドに入るのは簡単だけど、抜ける時が困る ということですよね。で ElementIndex ということなのですが。 PluralLinesLiteralProc で、 var C: Char; begin FToken := FTokenOfPluralLines; C := Chr(Byte(FElementIndex)); while not (FP^ in [#0, #10, #13]) do begin if FP^ = C then begin としてもダメっすか?余所で FElementIndex を参照するときは、例えば if FElementIndex > 10 then リテラル処理 else case FElementIndex of トークンの処理 な感じで行けません? > リテラルに関しては 見ましたが、入り組んでますね(^^; PerlFountain が遠のくのを感じます(^^;;; | ||
| 1584 | TStringsPrinter | コメント数: 1件 |
| meso | | 2001/09/07 (金) 19:30 | |
| はじめまして。 このたびDelphi6でTStringsPrinterを使ってみようと思ったのですが、 インストールが上手く行かず困っています。 新規パッケージの「StringPrinter.dpk」にインストールしようとしたのですが そのパッケージのrequires部のdclusr(自動的に書かれた)の部分で [致命的エラー]'C:\・・・\delphi6\Projects\Bpl\dclusr60.bpl'を作成できません と出てコンパイルできません。 パッケージの仕組みがイマイチ良く分かっていないのですが・・ ぜひこのコンポーネントを使ってみたいので、お分かりでしたら教えてください。 | ||
| 1583 | Re^2: Pentium 75MHz | コメント数: 1件 |
| Km | | 2001/09/07 (金) 08:21 | |
| > 5,000円でっせ。Ns 買った頃の Pentium
ノートって百万してたような(^^; > > なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。 > Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが > 少し「だる」になるかもしれませんが、勘弁してね。 5,000円といえば今はスイッチングハブ1台分位の値段ですね。 Pentium75MHzはテスト用なんですか?それとも主力開発マシン? どっちにしろGHzが主流の昨今、凄い話です。私も改めて自分の PCを大切にしようと思いました。 | ||
| 1582 | Re^2: Pentium 75MHz | コメント数: 3件 |
| 夜ゲイツ | | 2001/09/07 (金) 06:37 | |
| こんにちは。 > なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。 > Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが > 少し「だる」になるかもしれませんが、勘弁してね。 > > #Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^; 最近うちのBBSにDX4−100で軽快に動きますとお便りがありましたが、 理由が解りました。 それと、元祖Ne(486SX33)をオプションCPU(DX2 50Mhz 当時11万)に換装 した物を持っていますが、なんならプレゼントしましょうか? 当時カラーノートがやっと100万切ったので飛びついて買った物ですが、あまり 高かったので、捨てられなかったんですが、使う事もないので活躍の場があれば Neも喜ぶ事でしょう。 | ||
| 1581 | Re^2: Pentium 75MHz | コメント数: 1件 |
| みずほちゃん | | 2001/09/07 (金) 02:19 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| うちでは PC9821Ne3(i486DX2 50MHz) に Linux を入れて、サーバーとして活躍してもらっています。 > > でもその次のPCがPentium75MHzって(^^;;; > > 5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^; > > なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。 > Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが > 少し「だる」になるかもしれませんが、勘弁してね。 > > #Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^; Pentium 75MHzくらいで5000円くらいなんですね。 一度安いノートを探してみようかな。 | ||
| 1580 | Re^10: もう一つ質問 | コメント数: 16件 |
| みずほちゃん | | 2001/09/07 (金) 02:13 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| 説明が下手で、すいません。 > まず % を検知してから q, Q, x を判別してその次にある文字の Ord 値を > FElementIndex へ保持して、後は SingleQuotationProc のような処理。 > r の場合は、Element は関係なく RegExpProc へ分岐。 > > で、まずいのですか? うーん。多分、まずいです。 %rも %r|^hoge | のようなリテラルをとりますから。 > この辺の Ruby の仕様がわかるドキュメントを紹介していただけますでしょうか? > マニュアル全部読んでねは勘弁して欲しいですが(^^; リテラルに関しては http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB 擬似BNFが http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%B5%BF%BB%F7BNF%A4%CB%A4%E8%A4%EBRuby%A4%CE%CA%B8%CB%A1 にあります。TRubyFountainParserでは字句解析器レベル程度の 解析はしたいとおもっています。 | ||
| 1579 | Re: Pentium 75MHz | コメント数: 10件 |
| 本田勝彦 | | 2001/09/07 (金) 00:50 | |
| > 日記読みました。 を、ばれました?(^^; > ついに486DX2が逝ってしまったのですね。 逝ったんです。 > でもその次のPCがPentium75MHzって(^^;;; 5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^; なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。 Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが 少し「だる」になるかもしれませんが、勘弁してね。 #Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^; | ||
| 1578 | Re^9: もう一つ質問 | コメント数: 17件 |
| 本田勝彦 | | 2001/09/07 (金) 00:42 | |
| まず % を検知してから q, Q, x を判別してその次にある文字の Ord
値を FElementIndex へ保持して、後は SingleQuotationProc のような処理。 r の場合は、Element は関係なく RegExpProc へ分岐。 で、まずいのですか? この辺の Ruby の仕様がわかるドキュメントを紹介していただけますでしょうか? マニュアル全部読んでねは勘弁して欲しいですが(^^; | ||
| 1577 | Re^4: 行全体の描き分け | コメント数: 0件 |
| shinw | | 2001/09/06 (木) 23:26 | |
| お世話になっています。 > そうですねぇ。Brackets を使わないで、Elements で { } などを判別して、 > 該当 Elements 内では、それが url でない限りコメントと同じ色で描画される > トークンとして扱えば出来そうですね。挑戦してみて下さい。 は、はい。挑戦してみます。(^^;) > アップロードしましたので、色々発言の方からダウンロードして下さい。 ありがとうございます。いただきました。 | ||
| 1576 | Pentium 75MHz | コメント数: 11件 |
| Km | | 2001/09/06 (木) 03:15 | |
| 日記読みました。 ついに486DX2が逝ってしまったのですね。 でもその次のPCがPentium75MHzって(^^;;; | ||
| 1575 | Re^8: もう一つ質問 | コメント数: 18件 |
| みずほちゃん | | 2001/09/06 (木) 02:59 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| 試してみたんですが、ちょっと不具合があるみたいです。 本田さんの指摘に従って、 FTmpMethodTable(本田さんの %Q's proc ) を 作り、それに加えて FElementIndex を区切り文字に変換する FDelimitterList を用意したところ、 %q、%Q、%x については上手くいきました。 問題は正規表現を表すリテラルの %r です。 これはリテラルとしては上の三つと同じなのですが、 トークンとして別のものになるため、 どうしてももう一つ情報を保持する フィールドが必要になります。 # 良い方法が思い浮かばないだけかもしれませんが。 Rubyのリテラルにはヒアドキュメントというリテラルがあるため 出きれば情報を保持するフィールドを二つ追加して欲しいのですが、 ちょっと無理でしょうか? # フィールドを追加するとパースの処理が遅くなるので、 # あまり強く要望することは出来ないんですよねえ。 | ||
| 1574 | Re^3: 要望 | コメント数: 0件 |
| 本田勝彦 | | 2001/09/05 (水) 23:23 | |
| > Synedit は一度ソースを眺めたことがあります。 > ざっとしか見ていなかったのですが、 > lex もどきをベースにしていたんですね。 > 時間があったらもう一度のぞいてみようと思います。 SynGen フォルダがそれなのですが、mwEdit の時にあった文法サンプルファイル が見あたらないので、仕様が変わっているのかもしれません。 > yacc には一度挫折してます(苦笑) そりゃぁあなた、私だって(笑) | ||
| 1573 | Re^7: もう一つ質問 | コメント数: 19件 |
| みずほちゃん | | 2001/09/05 (水) 20:20 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| >
ネストに対応するのは、今の仕様では無理です。デフォルトにたどり着くためには、 > 各行が状態のリストデータを保持せなあかんでっしゃろ。 > パースする処理に加えて、状態のスタックを準備する必要があります。 > コンパイラはそれをやってるワケで、この簡易(1段のスタック)版が、 > THTMLFountain で利用している PrevToken データです。 えーと、別にネストに対応したいわけではなくて、 境界部分をきっちり認識できるかなというのが 気になっているんです。 思考実験では上手くいきそうな気はしているのですが。 > アップロードしましたので試して見て下さい。 cf 色々発言 ありがとうございます。 あとで試してみます。 | ||
| 1572 | Re^2: 要望 | コメント数: 1件 |
| みずほちゃん | | 2001/09/05 (水) 20:18 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| > 使って出来上がるスキャナーはポインタベタベタの拡張機能無し状態になると > 思いますが(^^; 正規表現は、DFA に変換された状態で実装コードが吐かれる > ことになるので、やっぱり case P^ of になると思いますよ。 それはそうでしょうが、lexにかける前のコードが シンプルになるかなと思いまして。 > mwEdit(現 SynEdit http://synedit.sourceforge.net/)がまさにこの > アーキテクチャを導入しています。作者の方は Delphi 用 yacc/lex を作って > いるので、お手の物なのかもしれません。純正 lex ではなく、コンポの > (Highlighter という)ソースを吐くアプリをコンポに同梱してあって、 > パース部分は、どのコンポもイチから作られます。TEditor の Bracket に該当 > する機能は実現されていますが、PrevToken や Element のように状態を扱う > 機能はありません。 Synedit は一度ソースを眺めたことがあります。 ざっとしか見ていなかったのですが、 lex もどきをベースにしていたんですね。 時間があったらもう一度のぞいてみようと思います。 > コンパイラの本を一冊読まれると良いかも。 yacc には一度挫折してます(苦笑) | ||
| 1571 | Re: 要望 | コメント数: 2件 |
| 本田勝彦 | | 2001/09/04 (火) 23:57 | |
| > http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm > > にはDelphi用のlexがあるので、 > これを使って、正規表現を使ってパーサー(というよりスキャナー?) > を作ることができるようにして欲しいです。 > > # 滅茶苦茶なことを言っています。 使って出来上がるスキャナーはポインタベタベタの拡張機能無し状態になると 思いますが(^^; 正規表現は、DFA に変換された状態で実装コードが吐かれる ことになるので、やっぱり case P^ of になると思いますよ。 mwEdit(現 SynEdit http://synedit.sourceforge.net/)がまさにこの アーキテクチャを導入しています。作者の方は Delphi 用 yacc/lex を作って いるので、お手の物なのかもしれません。純正 lex ではなく、コンポの (Highlighter という)ソースを吐くアプリをコンポに同梱してあって、 パース部分は、どのコンポもイチから作られます。TEditor の Bracket に該当 する機能は実現されていますが、PrevToken や Element のように状態を扱う 機能はありません。 コンパイラの本を一冊読まれると良いかも。 | ||
| 1570 | Re^3: 行全体の描き分け | コメント数: 1件 |
| 本田勝彦 | | 2001/09/04 (火) 23:45 | |
| > できました!ありがとうございます。 > > TEditorFountainを拡張して、Commenterを複数もてるようにし、SourcePosを参照するようにしました。これだけでできるなんて感動。やっぱりTEditorはすごいです。 すごいですって、shinw さんもすごいと思いますが(^^; > でも、新たな問題が。コメントブロック内でURL等を認識してくれない... > これはやっぱりDelphiFountainみたいに構文要素処理をする必要があるんでしょうか。 そうですねぇ。Brackets を使わないで、Elements で { } などを判別して、 該当 Elements 内では、それが url でない限りコメントと同じ色で描画される トークンとして扱えば出来そうですね。挑戦してみて下さい。 > もしわがままをお許しいただけるならぜひ送っていただきたいです。 > コードを参考にして勉強させていただきたいと思います。 アップロードしましたので、色々発言の方からダウンロードして下さい。 | ||
| 1569 | Re^6: もう一つ質問 | コメント数: 20件 |
| 本田勝彦 | | 2001/09/04 (火) 23:40 | |
| >
%Qの直後の文字にはほぼ任意の文字が使えるので、 うぅむ。 > %x| > > %Q(ほげ > > ) > > %r(^hoge$ > )| > > 上みたいな例は極端ですが、こういった場合に > ElementIndex で上手く対処できるかちょっと?な気がします。 ネストに対応するのは、今の仕様では無理です。デフォルトにたどり着くためには、 各行が状態のリストデータを保持せなあかんでっしゃろ。 パースする処理に加えて、状態のスタックを準備する必要があります。 コンパイラはそれをやってるワケで、この簡易(1段のスタック)版が、 THTMLFountain で利用している PrevToken データです。 > とりあえず試してみないと分からないので、一度ElementIndexを > 8ビットにしてみようと思います。 > で、すいませんが、どの辺をいじれば良いか教えてもらえませんか。 アップロードしましたので試して見て下さい。 cf 色々発言 | ||
| 1568 | 色々 | コメント数: 0件 |
| 本田勝彦 | | 2001/09/04 (火) 23:30 | |
| Elements を8ビット化した heRaStrings.pas http://compodev.at.infoseek.co.jp/arc/herastrings233.lzh 先頭が '>' など、指定した文字だとその行をワードラップしない TResEditor http://compodev.at.infoseek.co.jp/arc/resedt.lzh おまけで、内部文字列オブジェクトが保持する Brackets, Elements などの 情報を表示する TDebugEditor http://compodev.at.infoseek.co.jp/arc/debugeditor.lzh よろしかったらお試し下さい。 | ||
| 1567 | Re^4: バージョン管理 | コメント数: 0件 |
| sakazuki | | 2001/09/04 (火) 08:09 | |
| http://homepage2.nifty.com/sakazuki/rde.html | ||
| > えとね(^^;
バージョンアップの場合は、ご指摘のエラーは出ないと思うんですよね。 > > ツリーの最初で EditProp1.SearchOptions と書かれていらっしゃったので、 > sakazuki さんが独自に追加したプロパティがあるか、又は、EditorProp1.ReadReg を実行しているメソッドの中で、独自のレジストリ読み込み処理をされていてそちらでエラーが出ているのではと思いました。SearchOptions という published プロパティは今のところ無いし・・・ なるほど、そうですか。Editorのレジストリ周りでは独自の処理を追加してはいないので、EditorExか他の部分が怪しそうですね。再度調べてみます。また質問させていただきます。ありがとうございました。 | ||
| 1566 | 要望 | コメント数: 3件 |
| みずほちゃん | | 2001/09/04 (火) 02:21 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| たわ言です。無視してもらっても結構です。 今のFountainParserはすべて自前でポインターを動かして パースを行っています。これの方がスピードはでますが、 ちょっとした処理を行う場合には少々面倒です。 http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm にはDelphi用のlexがあるので、 これを使って、正規表現を使ってパーサー(というよりスキャナー?) を作ることができるようにして欲しいです。 # 滅茶苦茶なことを言っています。 | ||
| 1565 | Re^2: 行全体の描き分け | コメント数: 2件 |
| shinw | | 2001/09/04 (火) 02:07 | |
| > 先頭で '>' を見つけたら、文末までを toComment にするような
Parser を > 書きましょう。toComment と同じ働きをする新しいトークンを追加出来るような > 仕組みを今度のバージョンで追加するつもりです。 できました!ありがとうございます。 TEditorFountainを拡張して、Commenterを複数もてるようにし、SourcePosを参照するようにしました。これだけでできるなんて感動。やっぱりTEditorはすごいです。 でも、新たな問題が。コメントブロック内でURL等を認識してくれない... これはやっぱりDelphiFountainみたいに構文要素処理をする必要があるんでしょうか。 まあ、気長に取り組むようにします。 > 私が個人的に使っているエディタは、'>' が先頭にあると折り返しをしなくなる > ような拡張がされています。(色は変わりませんが)よろしかったらお送りしましょうか? もしわがままをお許しいただけるならぜひ送っていただきたいです。 コードを参考にして勉強させていただきたいと思います。 | ||
| 1564 | Re^3: 折り返しの問題 | コメント数: 0件 |
| みずほちゃん | | 2001/09/04 (火) 01:32 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| > 原因が判明致しました。ver 2.26
でバグを仕込んでしまっていました。 > ver 2.32 でいうと、heFountain.pas の706行目からの2行を740行目に移動して下さい。 > > Data.WrappedByte := 0; > Data.StartToken := toEof; > > こいつを、パーサーに渡す前にやってしまっていたという・・・ > > レポートに感謝です。 迅速な対応どうもです。 とりあえず私のところはすぐに動かなくても問題ないので、 TEditor本体がバージョンアップされるまで 待とうと思います。 | ||
| 1563 | Re^5: もう一つ質問 | コメント数: 21件 |
| みずほちゃん | | 2001/09/04 (火) 01:29 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| > %Q の後に許される文字は何種類程度あるのでしょうね。 > 一番確実なのは、それぞれにトークンを用意し、パースメソッドを用意することです。 %Qの直後の文字にはほぼ任意の文字が使えるので、 専用のパースメソッドを用意するのはちょっと…。 > Items はまだ12ビット余ってますから、次のバージョンで8ビットにすることも出来ますが、どうでしょ? これも考えたのですが、Rubyには %Q 以外にも %q、%x、%r と ヒアドキュメント(Perlのものと同じ)が使えるので、 ごちゃごちゃにならないか心配です。 %x| %Q(ほげ ) %r(^hoge$ )| 上みたいな例は極端ですが、こういった場合に ElementIndex で上手く対処できるかちょっと?な気がします。 とりあえず試してみないと分からないので、一度ElementIndexを 8ビットにしてみようと思います。 で、すいませんが、どの辺をいじれば良いか教えてもらえませんか。 斜め読みしただけだと、どこでビット数を決めているのか よく分かりません。 # heRaStrings.pas を見てたら、TRowAttributeData って # レコード型ですね。クラスだと思ってました。 | ||
| 1562 | Re: 行全体の描き分け | コメント数: 3件 |
| 本田勝彦 | | 2001/09/03 (月) 23:50 | |
| >
ある特定のキャラクタが行頭にあるときに、行全体をスタイルを変えて描画したいと > 思っています。(メーラなどで、引用行に別のスタイルを設定するのと同様です) > > OnDrawLineでは、WordWrapしているときに表示する分だけの一行文字列が渡される > みたいで、出来ませんでした。 > すみませんが、ParserとかFountainとかはまだよくわかっていません。 先頭で '>' を見つけたら、文末までを toComment にするような Parser を 書きましょう。toComment と同じ働きをする新しいトークンを追加出来るような 仕組みを今度のバージョンで追加するつもりです。 私が個人的に使っているエディタは、'>' が先頭にあると折り返しをしなくなる ような拡張がされています。(色は変わりませんが)よろしかったらお送りしましょうか? | ||
| 1561 | Re: TEditorとTRichEditの入れ替えは? | コメント数: 0件 |
| 本田勝彦 | | 2001/09/03 (月) 23:46 | |
| >
TRicheditから乗り換える場合の注意点などありましたらご教示ください。 すんません。 TRichEdit は使ったことがなかったりしたりして(^^; D2のサンプルがあまりに重くてそのままになった記憶があります。 サンプルプロジェクトの実行ファイルがアップロードされてますので、 弄り倒して見て下さい。 >変数や特殊形式の色分けをしたいのですが ということは、それ用の TFountain を作られるのが一番手っ取り早いですね。 もう少し落ち着いたら、TFountain の拡張コンポサンプルをここでたくさん 公開したいと思います。 要望などがありましたら、皆さんもふるって出して見て頂けますでしょうか。 なるべく具体的な方が実装が楽なので、よろしくお願い致します。 | ||
| 1560 | Re^3: バージョン管理 | コメント数: 1件 |
| 本田勝彦 | | 2001/09/03 (月) 23:40 | |
| えとね(^^;
バージョンアップの場合は、ご指摘のエラーは出ないと思うんですよね。 ツリーの最初で EditProp1.SearchOptions と書かれていらっしゃったので、 sakazuki さんが独自に追加したプロパティがあるか、又は、EditorProp1.ReadReg を実行しているメソッドの中で、独自のレジストリ読み込み処理をされていてそちらでエラーが出ているのではと思いました。SearchOptions という published プロパティは今のところ無いし・・・ | ||
| 1559 | 行全体の描き分け | コメント数: 4件 |
| shinw | | 2001/09/03 (月) 20:22 | |
| ある特定のキャラクタが行頭にあるときに、行全体をスタイルを変えて描画したいと 思っています。(メーラなどで、引用行に別のスタイルを設定するのと同様です) OnDrawLineでは、WordWrapしているときに表示する分だけの一行文字列が渡される みたいで、出来ませんでした。 すみませんが、ParserとかFountainとかはまだよくわかっていません。 (難しい^^;;;) こういう風に考えてみたらというようなヒントで結構ですので、教えていただけない でしょうか。よろしくお願いいたします。 | ||
| 1558 | TEditorとTRichEditの入れ替えは? | コメント数: 1件 |
| 笹川 賢一 | | 2001/09/03 (月) 17:55 | |
| http://www5a.biglobe.ne.jp/~sasagawa/MLEdit/ | ||
| こんにちは 私はSML/NJとScheme処理系のためのGUI環境を作成し、フリーソフトとして公開している者です。変数や特殊形式の色分けをしたいのですが、方法がわからず投げ出していました。TEditorのことを知り、やっと目的を達成することができるのではと喜んでいます。 ところで、今までは単純にTRicheditを利用してきました。TEditorに変更するとコードも直さなくてはならないと思うのですが、置き換えることは基本的に可能でしょうか? サンプルプロジェクトを読もうと思いますが、私はC++Builderなものですからどうしようかと思っています。 TRicheditから乗り換える場合の注意点などありましたらご教示ください。 | ||
| 1557 | Re^2: バージョン管理 | コメント数: 2件 |
| sakazuki | | 2001/09/03 (月) 09:30 | |
| http://homepage2.nifty.com/sakazuki/rde.html | ||
| > > Delphi のストリームシステムを利用する限り避けられません。 > 回避方法としては、プロパティを削除してしまった場合、レジストリに保存データが > あれば初期化してしまえば「エラー」は出なくなります。 > > 利用する TEditor のバージョンを下げたときも同様の現象が出ますので、 > ご注意下さい。 なるほど、了解しました。ちなみに、今回のケースは2.11から2.32へのアップ時の事象です。現在の配布アプリのユーザ側のレジストリには、2.11でWriteRegされており、今度2.32の使ったアプリを配布した際の初回のReadRegでのエラーをプログラムでなんとかしたかったのですが、Readmeや、注意書きで対応するようにしようと思います。 有り難うございました。 | ||
| 1556 | Re^4: もう一つ質問 | コメント数: 22件 |
| 本田勝彦 | | 2001/09/03 (月) 01:56 | |
| %Q
の後に許される文字は何種類程度あるのでしょうね。 一番確実なのは、それぞれにトークンを用意し、パースメソッドを用意することです。 プロパティはご指摘の通り保存されません。%Q の後に総ての文字が許される場合は、ElementIndex にその文字の Ord 値を保持させると良いかもしれません。32 より大きい値になるでしょ? if ElementIndex > 32 then %Q's proc[Char(ElementIndex)]; が、ElementIndex は4ビットにケチってあるんですよね(^^; Items はまだ12ビット余ってますから、次のバージョンで8ビットにすることも出来ますが、どうでしょ? | ||
| 1555 | Re^2: 折り返しの問題 | コメント数: 1件 |
| 本田勝彦 | | 2001/09/03 (月) 01:46 | |
| 原因が判明致しました。ver 2.26 でバグを仕込んでしまっていました。 ver 2.32 でいうと、heFountain.pas の706行目からの2行を740行目に移動して下さい。 Data.WrappedByte := 0; Data.StartToken := toEof; こいつを、パーサーに渡す前にやってしまっていたという・・・ レポートに感謝です。 | ||
| 1554 | Re^3: もう一つ質問 | コメント数: 23件 |
| みずほちゃん | | 2001/09/03 (月) 00:08 | |
| http://www.portnet.ne.jp/~mzh/ | ||
| > rbft-test.zip をダウンロードしました。 > 見せて頂きますね。 すいません。よろしく御願いします。 # うー他力本願だ | ||
| 1553 | Re: バージョン管理 | コメント数: 3件 |
| 本田勝彦 | | 2001/09/02 (日) 18:15 | |
| >
バージョン違いによる、このあたりのうまい処理の方法ってありますでしょうか? D4で作ったフォームをD2で開くとご指摘のエラーが出ますが、逆は 無いんですよね。 ですから、published なプロパティを公開するときは、今後絶対に名前も変えない。 削除もしない。という不退転の(笑)決意が必要だったりします。read write での アクセスメソッドの実装を変えて殺してしまうことは可能ですが。 Delphi のストリームシステムを利用する限り避けられません。 回避方法としては、プロパティを削除してしまった場合、レジストリに保存データが あれば初期化してしまえば「エラー」は出なくなります。 利用する TEditor のバージョンを下げたときも同様の現象が出ますので、 ご注意下さい。 | ||
| 1552 | Re^2: もう一つ質問 | コメント数: 24件 |
| 本田勝彦 | | 2001/09/02 (日) 18:08 | |
| rbft-test.zip
をダウンロードしました。 見せて頂きますね。 | ||
| 1551 | Re: 折り返しの問題 | コメント数: 2件 |
| 本田勝彦 | | 2001/09/02 (日) 18:05 | |
| > /\s < > hoge< > / > > のような場合に 二つ目の「/」が処理がおかしくなります。 > > TRubyFountainParser.SlashProc は SingleQuotation と > ほとんど同じ処理をしているので、同じようにバグがでるのでは > ないかと思うのですが、いかがでしょうか? TDelphiFountain で確認出来ました。3行以上に渡る toSingleQuotation で 不具合が出ます。Tokens プロパティを導入したときはウマく行ってたのですが、 変にしてしまったようです。 調べてみますので、少し時間を下さい。 | ||