Top / MeadowMemo / パーサsemantic―ライブラリ

semantic

semantic、eieioは、最新ではcedetに一緒に含まれるようになっています。
最新のcedet-1.0beta1c.tar.gzを展開し、load-pathの通ったところ(Meadow/site-lisp等)において
.emacsにて、(load "cedet")をすれば各パッケージを自動で読み込んでくれます。
semanticを有効にするには下記の設定をしてください。

(setq semantic-load-turn-everything-on t)

あと、速く動かしたい場合は、*.elをbyte-compileすればいいでしょう。
Makefileで自動インストールしてbyte-compileもやってくれるようですが、
Windows上だと手間だったので、インストールはそのままコピペ&手動byte-compileでも
OKでした。

問題

ただ、Meadow2では、semantic2.0beta1が、そのままではうまく評価できません。

  • 追記:cedet-bata2では、下記の問題はすべてクリアされています。---2004/4/14

    エラー内容
    Loading semantic-el (source)...
    condition-case: 
    +++ Symbol's function definition is void: defvaralias
    *** Compatibility with Semantic 2 might be broken:
        can't make obsolete variable `semantic-imenu-expand-type-parts'
        alias of `semantic-imenu-expand-type-members'.
    condition-case: 
    +++ Symbol's function definition is void: defvaralias
    *** Compatibility with Semantic 2 might be broken:
        can't make obsolete variable `semantic-imenu-bucketize-type-parts'
        alias of `semantic-imenu-bucketize-type-members'.
    condition-case: 
    +++ Symbol's function definition is void: defvaralias
    *** Compatibility with Semantic 2 might be broken:
        can't make obsolete variable `semantic-imenu-expandable-token'
        alias of `semantic-imenu-expandable-tag-class'.
    Loading semantic-el (source)...done

semanticを1.4.4のものと差し替えれば機能は落ちますがエラーは出ません。
また、ECBで、このようなグラフィカルな表示に
したいのであれば、cedet-1.0beta1cについているsemantic2.0beta1を入れなければ
いけないのですが・・・

ちなみに、ECBでは、バージョンチェックが厳しいので
ecb-upgrade.el内にある下記のバージョン部分を変更する必要があります。

(defconst ecb-required-semantic-version-max '(1 4 3 9))

↓↓↓↓↓↓↓↓

(defconst ecb-required-semantic-version-max '(2 0 3 9))

また、ソース編集したくない人は次の設定でも逃げることができます。

;; バージョンチェックOFF
(setq ecb-version-check nil)

解決

Hagi?さんから教わった方法(コメント参照)で、Semantic2.0beta1を動かすことができました。
上記、バージョンチェックをOFFにしなくてもできました。

あと、私の場合Semantic2を読み込んだとき、hideshow.elの次の設定で
なぜかエラーが出たのですが、マスクすればうまく動きました。

;; scratch バッファも自動的にmodeをon
;(add-hook 'lisp-interaction-mode-hook
;	  (lambda ()
;	    (hs-minor-mode 1)))

新しいsemantic を、インストールすることでECBも グラフィカルな画面になりました。
べつに、ECBを使わなくても新しいsemanticは機能が非常に豊富であるように思えるのですが
一度、機能一覧でも作りたいところです。
(ただ、速いPCが欲しくは、なりました・・・現在P4の1.6GHz)

コメント

  • ecbについてはあまりよく知りませんが、ecb-version-check を nil (ディフォルトは t )にすればソースコードを編集する必要がなくなるのでは? -- Hoshi? 2003-11-19 (水) 23:48:17
  • あ、やっぱり設定で逃げれましたか。まぁECBは、いいのですがsemantic2のエラーはMeadow2のベースがEmacs22になるまで解決できないのかなぁ。 -- R? 2003-11-20 (木) 09:37:34
  • defvaralias は Emacs21 には実装されてないんですよね.defalias にして逃げてます(semantic-fw.el).あと,Symbol's value as variable is void: semantic-tfe-overlay とか出たので,Semantic1.1.4 の semantic.el から定数 (semantic-tfe-*) と 関数 (semantic-token-*) を持って来てコピーしています(changelog には semantic-fw.el に持ってきたみたいなことが書いてあるんだけど).これで ecb-version-check 触らなくても動いてます. -- Hagi? 2003-11-20 (木) 12:00:23
  • 動作確認取れました。ありがとうございます。 -- R? 2003-11-20 (木) 13:43:05
  • 確かに,Semantic2 使うと新しいPC欲しくなりますよね…. -- Hagi? 2003-11-20 (木) 14:14:34
  • あ、今*Messages*のぞいたら「Note, built-in variable `x-stretch-cursor' not bound」となっていました。なんだろう?動いているからいいのかな? -- R? 2003-11-20 (木) 14:43:22
  • ECBのメリットって何?関数リストが出るのがいいのかな。他にこれは便利という機能がありますか? -- S? 2004-04-13 (火) 23:07:41
  • バッファヒストリー、ファイル操作、ソースファイルのリストなど。 マニュアル見るかぎり、使いこなせばかなりいろいろできそうだが、いろいろ設定面倒だしほとんど eshell あたりで間に合うので、自分は 2 ヶ月くらい使用して飽きてしまった。 -- 2004-04-14 (水) 12:30:49
  • 上に同じ。他のIDEを使い慣れた素人を引き入れるには便利かな。ただsemanticだけは有効にしている。 -- R? 2004-04-14 (水) 16:57:13

お名前:

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Fri, 28 Dec 2007 17:22:08 JST (3678d)