(toppers-users 4356) Re: com

yasuo kominami(nifty) ykominami @ nifty.com
2015年 3月 23日 (月) 15:46:45 JST


TOPPERSプロジェクト個人会員の小南です。

質問対象のアーカイブは、Windowsのcygwin 上でのbash, ruby, クロスコンパイラなどを
前提しています。

ただし、単にTECSのtecsgenを動かしてみたいだけであれば、tecsgenがRubyのスクリプト
として書かれているため、Mac OSの場合、Rubyがインストールされていれば、それだけで
動きます。

実行する前に、以下のことをすれば、tecsgen実行に必要な環境変数PATH,RUBYLIBの
設定が行われます。

cd tecs_package/tecsgen
source set_env.sh

README-build.txtには、「makeが必要」と書かれていますが、確認したところアーカイブに
は既に必要なファイルが揃っていました。

tecsgenはCDLファイルを読み込んで処理するときにRuby版YACCであるraccを利用してい
ます。
これはCDLファイルの文法を記述した*.y.rb から *.tab.rbをraccコマンドで生成するため、
(開発中などで)*.y.rbを変更した場合に、*.tab.rbを再生成する必要があるため、その処理を
忘れないために書かれているのではないかと思います。

ですので、小川さんが試された以下の部分は、実行する必要がないです。

> $ racc -v tecslib/core/bnf.tab.rb
> racc: tecslib/core/bnf.tab.rb: bnf.tab.rb:7: unexpected token 'require'
>


現時点でMacでtecsgenを実行するときに気を付けなければならないのはRubyのバージョン
だと思います。
TECSがRuby 1.8.7を必要条件としているため、このバージョンをインストールしないといけない
です(現在のRubyの安定板は2.2.1で、この間1.9.3がサポート終了がアナウンスされました)。

ruby 1.8.7のインストールに関しては、例えば以下の記事を参考になると思います。
http://qiita.com/noanoa07/items/15251975b06e4f392ac3


Windwosの場合は、Active Script Rubyのようなワンクリックインストーラーで1.8.7版を
インストールできたり、質問対象のアーカイブにはRubyスクリプトを実行ファイルにする
Exertによる、実行ファイル形式のtecsgenが同梱されています。

2015-03-23 14:01 GMT+09:00 <kaizen @ wh.commufa.jp>:

> いつもお世話になっています。
>
> 小川清@名古屋市工業研究所です。
>
> 公式packageの例で記載し直します。ごめんなさい。
>
> Macintoshでtexcを使うため
> https://www.toppers.jp/tecs.html
> から
> https://www.toppers.jp/download.cgi/tecs_package-20120608.tar.gz
> をダウンロード
>
> README-build.txt
>> 「CRuby 版 tecsgen (拡張子 exeなし)を、シンボリックリンク(ln -s) するこ
> ともできます。
>  この場合は、tecs_package/tecsgen/tecsgen の下で make する必要があります。
>  make には cygwin 版の Ruby, Racc が必要です。
>  さらに、環境変数 RUBYLIB=$(YOUR_ROOT)/tecs_package/tecsgen/tecsgen を設
> 定する必要があります。」
>
> # gem install racc
>
> $ export RUBYLIB=/userpath/tecs_package/tecsgen/tecsgen
>
> make
> make: Nothing to be done for `all'.
>
> そこでmakefileの中を順に実施すると...
>
> racc -v tecslib/core/bnf.y.rb
> /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/lib/racc/
> grammarfileparser.rb:298:in `split': invalid byte sequence in UTF-8 (
> ArgumentError)
>         from /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/lib/racc/
> grammarfileparser.rb:298:in `initialize'
>         from /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/lib/racc/
> grammarfileparser.rb:179:in `new'
>         from /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/lib/racc/
> grammarfileparser.rb:179:in `parse'
>         from
> /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/bin/racc:143:in `
> block in main'
>         from
> /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/bin/racc:277:in `
> section'
>         from
> /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/bin/racc:141:in `
> main'
>         from
> /usr/local/lib/ruby/gems/2.2.0/gems/racc-1.4.12/bin/racc:308:in `<
> top (required)>'
>         from /usr/local/bin/racc:23:in `load'
>         from /usr/local/bin/racc:23:in `<main>'
>
> UTF-8
> に変換して保存
>
> $ racc -v tecslib/core/bnf.y.rb
> $ racc -v tecslib/core/C_parser.y.rb
> 5 shift/reduce conflicts
> 5 reduce/reduce conflicts
> $ racc -v tecslib/core/bnf.tab.rb
> racc: tecslib/core/bnf.tab.rb: bnf.tab.rb:7: unexpected token 'require'
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.toppers.jp/pipermail/users/attachments/20150323/f0a79b86/attachment.html>