projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Makefileの修正
[YACASL2.git]
/
include
/
cerr.h
diff --git
a/include/cerr.h
b/include/cerr.h
index
586ab4d
..
5ff200c
100644
(file)
--- a/
include/cerr.h
+++ b/
include/cerr.h
@@
-1,36
+1,67
@@
#ifndef YACASL2_CERR_H_INCLUDED
#define YACASL2_CERR_H_INCLUDED
#ifndef YACASL2_CERR_H_INCLUDED
#define YACASL2_CERR_H_INCLUDED
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
+#include <stdbool.h>
+#include "cmem.h"
-#ifndef ARRAYSIZE
-#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
-#endif
+/**
+ * エラーの構造体
+ */
+typedef struct _CERR {
+ int num; /**<エラー番号 */
+ char *msg; /**<エラーメッセージ */
+} CERR;
-/* エラー番号 */
-extern int cerrno;
+/**
+ * 現在のエラー
+ */
+extern CERR *cerr;
-/* エラーメッセージ */
-extern char *cerrmsg;
+/**
+ * エラーリスト型
+ */
+typedef struct _CERRLIST {
+ struct _CERRLIST *next; /**<リスト次項目へのポインタ */
+ CERR *cerr; /**<エラーの構造体 */
+} CERRLIST;
-/* エラーコードリスト */
-typedef struct {
- int num;
- char *msg;
-} CERRARRAY;
+/**
+ * エラーリスト
+ */
+extern CERRLIST *cerrlist;
enum {
enum {
- MSGSIZE = 60,
+ CERRSTRSIZE = 10, /**<エラーメッセージ中に挿入できる文字列のサイズ */
+ CERRMSGSIZE = 70, /**<エラーメッセージのサイズ */
};
};
-/* エラー番号とエラーメッセージを設定 */
-void setcerr(int num, const char *val);
+/**
+ * エラーの初期化
+ */
+void cerr_init();
+
+/**
+ * エラーリストを作成・追加する
+ */
+void addcerrlist(int cerrc, CERR cerrv[]);
+
+/**
+ * エラーリストを表示する
+ */
+void printcerrlist();
+
+/**
+ * 現在のエラーを設定する
+ */
+void setcerr(int num, const char *str);
-/* エラー番号からメッセージを返す */
+/**
+ * エラーリストから、エラー番号に対応するメッセージを返す
+ */
char *getcerrmsg(int num);
char *getcerrmsg(int num);
-/* エラーを解放する */
+/**
+ * エラーリストと現在のエラーを解放する
+ */
void freecerr();
#endif
void freecerr();
#endif