アウトラインマクロについてNo.00040
ませま さん 02/05/09 01:06
 
こちらの会議室は利用者が少ないようなので,少し
変わった話題をふらせてもらいます.

現在,簡単なアウトライン解析マクロをライブラリで公開
しているのですが,このマクロについてアドバイスを頂け
たらと思います.

現在,基本機能はあらかた実装したので,アウトライン行を
判定するための正規表現を定義しようと考えているのですが,
知っているプログラミング言語が少ないし,正規表現も
詳しくないので,困っています(^^;

例えば,C や,Perl のアウトライン解析をする場合,
見出しを判断する正規表現はどうしたらいいでしょうか?
HTML とかなら,<H1> で始まる行,とかにしたら簡単だけど,
C言語のように複雑になるとよく分りません.

特に,マイナー言語の見出し判別用の正規表現など,
知っている人にアドバイスもらえたらと思います.

基本的には,マクロのユーザが自由に設定することに
しているけど,なるべくデフォルトでできるようにしたいと
考えています.

[ ]
RE:00040 アウトラインマクロについてNo.00041
ひろ さん 02/05/09 12:15
 
 ませまさん今日は、ひろです。
> 例えば,C や,Perl のアウトライン解析をする場合,
> 見出しを判断する正規表現はどうしたらいいでしょうか?
 標準ついていたり、ライブラリに公開されている強調表示定義ファイル
(*.hilight) ファイルを参考にされてはどうでしょうか?

[ ]
RE:00041 アウトラインマクロについてNo.00042
ませま さん 02/05/09 22:24
 
ひろさんの
2002/05/09のメッセージ:
> 標準ついていたり、ライブラリに公開されている強調表示定義ファイル
>(*.hilight) ファイルを参考にされてはどうでしょうか?

ああ,そうか(^^;

今デフォルトにある VisualBasic と C の強調表示定義ファイル
を解凍してみました.
Cの方はそれらしい定義が複数あって,よく分らないけど,
VB の方はできそうでした.
# VBソースの拡張子を知らないの調べないとダメだけど(--;

他の言語も,ライブラリの定義ファイルを参考にしたら出来そうです.
さっそく,調査してみようと思います.
いつもお世話になります(^^;

[ ]
RE:00042 アウトラインマクロについてNo.00043
Arimac さん 02/05/10 23:08
 
># VBソースの拡張子を知らないの調べないとダメだけど(--;

今はC++ばかりやってますが、たしか
*.FRM
*.BAS
*.CLS
がソースの拡張子だったと思います。
プロパティシートとかもあったかな?

[ ]
RE:00043 アウトラインマクロについてNo.00044
ませま さん 02/05/11 12:19
 
Arimacさんの
2002/05/10のメッセージ:
>今はC++ばかりやってますが、たしか
>*.FRM
>*.BAS
>*.CLS
>がソースの拡張子だったと思います。
>プロパティシートとかもあったかな?
助かります.
ネットで検索して,*.bas を見つけたので登録したけど,
FRM や CLS は初めて知りました(^^;
# 全く知らないもので・・・

教えてもらった拡張子も調査してみようと思います.
「プロパティシート」とかも探して見ます.

[ ]
RE:00044 アウトラインマクロについてNo.00045
じゅんざぶろう さん 02/05/13 10:29
 
じゅんざぶろう@VB使い、です。

>「プロパティシート」とかも探して見ます.

プロパティシート(プロパティページ)は、
.pag です。
また、ユーザコントロール
.ctl
なんてものもあります。

が、個人的には、
.frm .bas .cls
があれば充分かと思います。

.pag はあまり一般的ではありませんし
(私の周りでは、ですが。)
.ctl は私はOracleのSQL Loaderの制御ファイルに
使ってたりします。
(こちらも、私の周りではあまり一般的ではありません。)

拡張子とファイルの対応付けは難しいですね。
以上、ご参考まで。

[ ]
RE:00045 アウトラインマクロについてNo.00046
ませま さん 02/05/14 00:14
 
じゅんざぶろう@VB使いさん.
>が、個人的には、
>.frm .bas .cls
>があれば充分かと思います。
>
>.pag はあまり一般的ではありませんし
>(私の周りでは、ですが。)
>.ctl は私はOracleのSQL Loaderの制御ファイルに
>使ってたりします。
>(こちらも、私の周りではあまり一般的ではありません。)

こんにちは.ませまです.
情報感謝します.教えてもらった拡張子も,一応調べてみよう
と思います.VB のini設定は一応はすでに完成し,

[.bas]
MaxL=3
L1=^((Private|Public| *) *(Function|Sub|Property) +[^ ]+|'\.)
L2=^'\.\.
L3=^'\.\.\.
LeftMark=[
RightMark=]

となっています.行頭から '. は第一階層, '.. は第二階層の見出し
というように解析し,

Public Sub ????

とかいうのも第一階層になるようにしてます.
1000行程度の VB のソースなら,そこそこのスピードでツリー
表示できると思いますので,

---
どなたか,僕のアウトラインマクロと VB を使う人いたら,
上の設定に凄い欠陥がないか,使ってみていただけたら,と思います.

[ ]
RE:00046 アウトラインマクロについてNo.00047
じゅんざぶろう さん 02/05/14 12:37
 
じゅんざぶろうです。

>どなたか,僕のアウトラインマクロと VB を使う人いたら,
>上の設定に凄い欠陥がないか,使ってみていただけたら,と思います.

使用条件に合致しない(強いてあげれば貧乏?)ので、
不正利用ですが、(^^;;;
コメントをきっちりかけば見やすそうですね。
(それが難しいのですが、、、。)

個人的には、文頭からコメントを書いたりはしないので、
[.frm]
MaxL=3
L1=^(Private|Public| *) *((Function|Sub|Property) +[^ ]+|'\.)
L2=^ *'\.\.
L3=^ *'\.\.\.
LeftMark=[
RightMark=]

の方が好みです。

また、Public関数、Private関数の他に、
(あんまり使われませんが)Friend関数があります。
→私の強調表示だと、
 ^(Private|Public|Friend| *) *(Function|Sub|Property) +[^ ]+
しかし、Friendを組み込もうとしたら、
JRE32.dll の限界か、怒られてしまいました。
使用頻度から考えて、なくても構わないと思います。

以上、ご参考まで。

[ ]
RE:00047 アウトラインマクロについてNo.00048
ませま さん 02/05/15 09:20
 
>使用条件に合致しない(強いてあげれば貧乏?)ので、
>不正利用ですが、(^^;;;
アレは冗談ですので・・・(^^;;;


>個人的には、文頭からコメントを書いたりはしないので、
<省略>
>の方が好みです。
早速,採用したいと思います(^^;
知らないけど,*.bas や *.cls も同じ設定にしちゃおう
と思います.バージョン 0.06 以降で装備したいと思います.


>しかし、Friendを組み込もうとしたら、
>JRE32.dll の限界か、怒られてしまいました。
そういうこともあるわけですね.
田楽サーバのリファレンスマニュアルには bregexp.dll という他の
dll を使用するコマンド,とかいうのが載ってたので,何か対策可能
なのかもわかりません.例えば,ini の設定が,

[.bas]
bregexp=1
・・・

となっていたらそちらを使う,とか出来たら,便利そうです.
この処理が不可能,可能,困難,容易の判断ができない程に意味が
分かってないので,なんともいえないけど,勉強してみます(^^;

情報提供感謝致します m(__)m

[ ]