• 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

Revisãob2cc74fe1e0d6ba07b7ed0bc28244824aa4a7358 (tree)
Hora2020-01-27 22:50:34
Autordhrname <dhrname@user...>
Commiterdhrname

Mensagem de Log

Modify the Exception

Mudança Sumário

Diff

--- a/source_code/orderedpair/exception.h
+++ b/source_code/orderedpair/exception.h
@@ -1,7 +1,7 @@
11 /*
22 * Star - A Programing language.
33 *
4- * Copyright (C) 2017 dhrname <dhrnamesie@yahoo.co.jp>
4+ * Copyright (C) 2017 dhrname <dhrname@joestar.sakura.ne.jp>
55 */
66
77 #pragma once
--- a/source_code/orderedpair/list/tree/nodelist/class/class.h
+++ b/source_code/orderedpair/list/tree/nodelist/class/class.h
@@ -13,7 +13,6 @@
1313 * Λ = {名前, 乙}
1414 * Λによって添数づけられた写像集合系Aの元の族Cを、クラスと考える
1515 * インスタンス化は、この集合系Aから、Aの元である写像集合B(A∍B)の元を集めた集合への写像bと考える
16- * このとき、インスタンス化を選出と呼ぶ
1716 * メソッドの呼び出しは、集合族Cと写像bの関数合成、すなわち、
1817 * a = C ∘ b
1918 * を満たす写像aと考える(このとき、メソッドの名前集合はΛであることに注意せよ)
@@ -27,36 +26,42 @@
2726 * したがって、遺伝継承は、単一継承のように一つのメソッドをたどっていくと、一つのクラスにたどり着く
2827 * また、数世代の遺伝継承によって、多重継承を実現する
2928 *
29+ *
3030 * 予約語
31- * 集合族 継承 名前空間 自分 自己 自身 我 俺 私 小生 余 拙者
31+ * クラス 継承 名前空間 自分 自己 自身 我 俺 私 小生 余 拙者
3232 *
3333 * この予約語、あるいはこの予約語に関数適用されない束縛変数は、すべて添数とみなす
3434 *
35- * また、選出は遺伝継承をたどっていった始祖の添数である
36- *
3735 *
3836 * サンプルのソースコード
3937 *
38+ *
4039 * 「 「内容」(甲)を名前として、
4140 *   「内容」(甲)を乙
42- *  」(インスタンス変数)を丙の集合族とする
43- * 丙と「集合族の内容」(変数)を継承した子供の集合族
44- * 丙と子供を継承した孫という集合族
41+ *  」(インスタンス変数)を丙のクラスとする。
42+ *
43+ * 丙と「クラスの内容」(変数)を継承した子供のクラス
4544 *
45+ * 丙と子供を継承した孫というクラス
46+ *
4647 * 孫
4748 * 「甲は乙する」(甲)
4849 *
49- * サンプルという名前空間
5050 * */
5151
5252
53-/*グローバル集合族*/
54-ST_Node ST_Global_Family_Of_Sets;
53+/*ハッシュ表で使う素数*/
54+
55+#define ST_M 2
56+
57+/*グローバルクラスを格納した配列の派生型*/
58+typedef ST_Node ST_Global_Family_Of_Sets[ST_M];
5559
5660 /*ST_initClass 関数
5761 * クラスの初期化
58- * 戻り値はグローバル集合族ノード*/
59-ST_Node ST_initClass();
62+ * 戻り値は初期化されたグローバルクラスノードの配列
63+ * グローバル変数を初期化するので注意*/
64+ST_Global_Family_Of_Sets ST_initClass();
6065
6166 /*ST_parseClass 関数
6267 * 引数のノードからクラスの文法を処理する*/
--- a/source_code/shadowstar.c
+++ b/source_code/shadowstar.c
@@ -1385,7 +1385,8 @@ static inline ST_Token_Mode* alloca_tokens(uint_fast64_t filelength)
13851385 return s;
13861386 }
13871387
1388-/*ゲーデル数の一種である自然数のペアのコード化関数*/
1388+/*ゲーデル数の一種である自然数のペアのコード化関数
1389+ * 参照:「C言語による計算の理論」(鹿島実)*/
13891390 static inline uint64_t pair (uint64_t x, uint64_t y)
13901391 {
13911392 return (((x+y) * (x+y+1) / 2 ) + x + 1);
@@ -1420,41 +1421,7 @@ void ST_main(ST_Char* name, ST_Char* s, uint_fast64_t filelength)
14201421 ST_Node btr = ST_parse(freetree, tokens, filelength, varlist);
14211422 free(tokens);
14221423 ST_Node evalresult = ST_eval(varlist, btr);
1423- ST_parseClass(evalresult);
1424-
1424+
14251425 ST_freelist(varlist);
14261426 ST_freenode(freetree);
14271427 }
1428-
1429-/*ST_initClass 関数
1430- * クラスの初期化
1431- * 戻り値はグローバル集合族ノード*/
1432-ST_Node ST_initClass()
1433-{
1434-}
1435-
1436-/*ST_parseClass 関数
1437- * 引数のノードからクラスの意味を解析処理する*/
1438-ST_Node ST_parseClass(ST_Node node)
1439-{
1440-
1441- if ( (NULL == node) || ST_isEmptyNode(node) )
1442- {
1443- return ST_EMPTY_NODE;
1444- }
1445-
1446- ST_Char *keywords = u8"集合族 継承 名前空間 自分 自己 自身 我 俺 私 小生 余 拙者";
1447-
1448- ST_Ordered_Pair *varlist = ST_tokenize(keywords, alloca_tokens(strlen(keywords)*10));
1449-
1450- ST_First_Type num = ST_first(varlist);
1451-
1452- for (ST_Node a = node;ST_isEmptyNode(a);a = ST_getPreviousNode(a))
1453- {
1454- if (ST_getBoundVariable(ST_getNodeValue(a)) == num)
1455- {
1456- }
1457- }
1458-
1459- return ST_EMPTY_NODE;
1460-}
Binary files a/source_code/shadowstar.o and b/source_code/shadowstar.o differ
--- a/source_code/star.h
+++ b/source_code/star.h
@@ -32,5 +32,3 @@
3232 #include "orderedpair/list/item.h"
3333
3434 #include "orderedpair/list/tree/nodelist/ntree.h"
35-
36-#include "orderedpair/list/tree/nodelist/class/class.h"
Binary files a/source_code/star.o and b/source_code/star.o differ
--- a/source_code/startest.c
+++ b/source_code/startest.c
@@ -795,9 +795,7 @@ printf("\n%d\n", i);
795795
796796
797797 ST_freenode(freelist);
798-
799- ST_main("test", u8"集合族", 100);
800- ST_initClass();
798+
801799
802800 /*以下のtests_file_lengthのアサーションは評価が値呼びであることを前提にしている*/
803801 tests_file_length = 0;
@@ -937,9 +935,7 @@ int tests_invalid() {
937935
938936 ST_Char *chee = "testsuite/eeucjp.st";
939937 ST_readFile(chee, ST_main);
940-
941- assert( ST_isEmptyNode(ST_parseClass(ST_EMPTY_NODE)) );
942- assert( ST_isEmptyNode(ST_parseClass(NULL)) );
938+
943939
944940
945941 printf("ended error test...\n");
Binary files a/source_code/startest.o and b/source_code/startest.o differ