• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

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

programming language


Commit MetaInfo

Révision8561f96c687d0ba3ff0278fb6a8394e29e5231b8 (tree)
l'heure2023-03-23 23:30:20
Auteurdhrname <dhrname@joes...>
Commiterdhrname

Message de Log

Add the initilizeCoordinate member function and the getFollowSt member function

Change Summary

Modification

Binary files a/bin/obj/main.o and b/bin/obj/main.o differ
--- a/include/phrase.hpp
+++ b/include/phrase.hpp
@@ -1258,6 +1258,11 @@ namespace jstr
12581258 * 文法にマッチした記号が三次元配列のどこに配置されているかがわかる*/
12591259 virtual void setCoordinate(const int32_t, const int32_t, const int32_t);
12601260
1261+ /*initializeCoordinate メンバ関数
1262+ * BNF記法を三次元配列化したものの、座標位置を初期化
1263+ * 文法にマッチした記号が三次元配列のどこに配置されているかがわかる*/
1264+ virtual void initializeCoordinate();
1265+
12611266 /*isNonterminalSymbolId メンバ関数
12621267 * 引数idが非終端記号であれば、true、
12631268 * そうでなければ、falseを返す*/
@@ -1317,7 +1322,7 @@ namespace jstr
13171322 virtual void setFollowSetBySymbolId(const int32_t);
13181323
13191324 /*getFollowSet メンバ関数
1320- * BNF定義を元にFOLLOW集合を求める*/
1325+ * BNF定義の座標を元にFOLLOW集合を求める*/
13211326 virtual std::unordered_set<int32_t>& getFollowSet();
13221327 };
13231328
--- a/parser.cpp
+++ b/parser.cpp
@@ -229,25 +229,7 @@ void Parser::setCoordinate()
229229 {
230230 continue;
231231 }
232- for (int32_t k = 0; k<BNF_CONCATNATION_LENGTH;k++)
233- {
234- for (int32_t j = 0; j<BNF_SELECTION_LENGTH;j++)
235- {
236- for (int32_t i = 0;i<BNF_NONTERMINAL_LENGTH;i++)
237- {
238- int32_t id = jstr::parser::BNF[i][j][k];
239- if (id <= 0)
240- {
241- /*bnfを疎な配列と見なして最適化*/
242- break;
243- }
244- else if (id == p->getSymbolId())
245- {
246- p->setCoordinate(i, j, k);
247- }
248- }
249- }
250- }
232+ p->initializeCoordinate();
251233 }
252234 }
253235