Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re^4: SAD on MacOS 10.7.3
Date: 2012/05/06(Sun) 16:14:47
ContributorAkio Morita

> > > > oldsad-snapshot-2012-04-09.tar.gz - (1)
> > > > oldsad-V1.0.10.5a.tar.gz - (2)
> > > > oldsad-amorita-snapshot-3995.tar.gz -(3)
> >
> > > * 正常な処理系を構成する SAD source codeを問題があったターゲット環境上で makeして結果がどうなるか
> > > * 正常な処理系の実行環境で、問題があった SAD source codeを makeして結果がどうなるか
> >
> > 以前の『正常な処理系』と環境は、oldsad-1.0.8.20.5b と Mac OS 10.5 でした。
> >
> > 再度、oldsad-snapshot-2012-04-09 で試したところ以下のエラーを得ていたことがわかりました。
> > QEF=( L=LQA/2.0, K1=KQEF )! APERTURE=RQA
> > LALR(1) parser: syntax error
> > QED=( L=LQA/2.0, K1=KQED )! APERTURE=RQA
> > LALR(1) parser: syntax error
> > ....
> > したがって、sad入力ファイル中の , をスペースに交換すると上のsyntax errorがなくなり、正常な結果が得られるようになりました。 ただし、使用していた入力のSAD-scriptは以前のものと同じです。また、acsad5.kek.jp上でもsyntax errorは出ていません。
> >
> 既に、acsad5つまり Compaq Tru64上の SADの保守は打ちきられています
>
> > oldsad-amorita-snapshot-3995 も試しましたが、この場合、結果は改善されませんでした。別の原因のようです。
> >
> > とりあえず、syntax errorを無くすようにscriptを変え、oldsad-snapshot-2012-04-09 を使用し、問題なくsadを利用できるようになりました。
> >
> 私の個人的見解では、古いSADの実装の曖昧さに起因する非互換性です
>
> MAIN levelの構文解析器の実装で、パラメータ部の部分式解析器を YACCで生成している(calc.y)ですが、
> 昔の実装は 部分式の評価は必ず文法エラーになっていました(YACC上で定義している 部分式の文法)
> で、ある時点から後続する字句が次のパラメータ式あるいは パラメータブロックの終了記号の場合に受理、
> それ以外は拒否となるように部分式文法の定義を修正しています(2008/03/21 Revision 1.4)
> もっとも、現時点でも正しく文脈依存性が実装されていません
> (地の文に現れる代入式と構文解析器を共有しているため `;'が終端記号になり得る)
>
一応、以下のパッチを当てて src/calc.cを作り直せば歴史的 ","構文を受け入れるようになるはずです
Index: src/calc.y
===================================================================
--- src/calc.y (revision 3670)
+++ src/calc.y (revision 3671)
@@ -24,7 +24,7 @@
%right '~'
%start expr
%%
-end_of_expr: ';' | ')' | ID;
+end_of_expr: ',' | ';' | ')' | ID;
opt_eol: /* empty */ | EOL;
expr:
UNIT {yyerror("Unexpected UNIT");}
Index: Changes
===================================================================
--- Changes (revision 3670)
+++ Changes (revision 3671)
@@ -1,3 +1,8 @@
+2011/06/02:
+ Fix expr syntax to accept tailing `,'
+ src/calc.y
+ src/calc.c
+
2011/05/30:
Update MFC status
TODO.MFC


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)