• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisionf8c49f238412be17cb30e42e98db350b6d2fbe77 (tree)
Time2018-11-25 20:30:52
Authordhrname <dhrname@user...>
Commiterdhrname

Log Message

Modify the ST_parse and Move an interface for the ST_getBoundVariable

Change Summary

Incremental Difference

--- a/source_code/orderedpair/list/tree/nodelist/ntree.h
+++ b/source_code/orderedpair/list/tree/nodelist/ntree.h
@@ -103,3 +103,9 @@ typedef ST_Node (*ST_Node2Node)(ST_Node);
103103 /*ST_setItemNode 関数
104104 * C言語でラムダ計算のchurch数を部分的に再現するための関数(ノード用)*/
105105 ST_Node ST_setItemNode (uint_fast32_t length, ST_Node2Node f, ST_Node node);
106+
107+
108+/*ST_getBoundVariable 関数
109+ * 関数抽象ノードabstractionの束縛変数(Bound Variable)を数値化したものを取得する
110+ * ここでいう束縛変数とは、λx.Mのときの、変数xを指す*/
111+ST_First_Type ST_getBoundVariable (ST_Ordered_Pair *);
--- a/source_code/shadowstar.c
+++ b/source_code/shadowstar.c
@@ -462,9 +462,6 @@ ST_Node ST_parse(ST_Node freetree, ST_Token_Mode *array, size_t length, ST_Order
462462 ST_Ordered_Pair *null;
463463 null = ST_EMPTY;
464464
465- /*前回のキャッシュしておいた変数の値*/
466- ST_Ordered_Pair *cache_v = v;
467-
468465 /*束縛変数、すなわち、()内の変数の値を格納したスタックリスト*/
469466 ST_Stack_List bound_vstacklist = &null;
470467
@@ -499,8 +496,6 @@ ST_Node ST_parse(ST_Node freetree, ST_Token_Mode *array, size_t length, ST_Order
499496 /*変数ノードには、変数の値だけがノード値として格納される*/
500497 ST_setNodeValue(seq, v);
501498 }
502- /*後述する関数抽象の終わりのために、変数をキャッシュしておく*/
503- cache_v = v;
504499 v = ST_second(v);
505500 break;
506501 case ST_KAGIKAKKO_END_TOKEN:
@@ -515,7 +510,7 @@ ST_Node ST_parse(ST_Node freetree, ST_Token_Mode *array, size_t length, ST_Order
515510 /*ノード型を関数抽象型とする*/
516511 seq->nodeType = ST_LAMBDA_ABSTRACTION_NODE;
517512 /*あらかじめキャッシュしておいた変数cache_vは、「の後で、一番目に出てくる変数*/
518- ST_setNodeValue(seq, ST_pairTree(ST_popTree(bound_vstacklist), cache_v));
513+ ST_setNodeValue(seq, ST_popTree(bound_vstacklist));
519514 break;
520515 default:
521516 break;
@@ -910,9 +905,9 @@ ST_Binary_Tree ST_getListItem (ST_Binary_Tree list, uint_fast32_t num)
910905 /*ST_getBoundVariable 関数
911906 * 二分木リストとして表現された関数抽象abstractionの束縛変数(Bound Variable)を数値化したものを取得する
912907 * ここでいう束縛変数とは、λx.Mのときの、変数xを指す*/
913-ST_First_Type ST_getBoundVariable (ST_Binary_Tree abstraction)
908+ST_First_Type ST_getBoundVariable (ST_Ordered_Pair *abstraction)
914909 {
915- return ST_first(ST_getFirstTree(abstraction));
910+ return ST_first(abstraction);
916911 }
917912
918913 /*ST_freetree 関数
--- a/source_code/shadowstar.h
+++ b/source_code/shadowstar.h
@@ -52,8 +52,3 @@ typedef struct ST_Text_Code {
5252 ST_Token_Mode* array; /*トークンモードの配列*/
5353 uint_fast32_t pos; /*現在のソースコードの位置*/
5454 } ST_Text_Code;
55-
56-/*ST_getBoundVariable 関数
57- * 二分木リストとして表現された関数抽象abstractionの束縛変数(Bound Variable)を数値化したものを取得する
58- * ここでいう束縛変数とは、λx.Mのときの、変数xを指す*/
59-ST_First_Type ST_getBoundVariable (ST_Binary_Tree);
Binary files a/source_code/shadowstar.o and b/source_code/shadowstar.o differ
Binary files a/source_code/startest.o and b/source_code/startest.o differ