OSDN Git Service

Added macros.jsh
authorNagao Takeyuki <nagaotakeyuki@gmail.com>
Sun, 13 Sep 2009 01:12:34 +0000 (10:12 +0900)
committerNagao Takeyuki <nagaotakeyuki@gmail.com>
Sun, 13 Sep 2009 01:12:34 +0000 (10:12 +0900)
Signed-off-by: Nagao Takeyuki <nagaotakeyuki@gmail.com>
Makefile
src/js/include/jdisp/macros.jsh [new file with mode: 0644]
src/js/include/jdisp/package.jsh

index e42c45c..aa76e11 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@ all:
                  | sed -n '/./p' > "$$output" && \
                echo "Wrote output on $$output" && \
                $(PROG_JSL) -process "$$output" && \
+                 if [ $$? -eq 3 ]  ; then exit 1 ; fi ; \
                echo "Test successful." \
                || exit 1 ; \
        done
diff --git a/src/js/include/jdisp/macros.jsh b/src/js/include/jdisp/macros.jsh
new file mode 100644 (file)
index 0000000..dfc5172
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef _JDISP_MACROS_JSH\r
+#define _JDISP_MACROS_JSH\r
+\r
+/*\r
+ * primitive macros\r
+ */\r
+#define FATAL(msg) alert(msg)\r
+\r
+#define STR_VEC2D(x, y) ("(" + Number(x) + "," + Number(y) + ")")\r
+#define STR_POINT(pos) ((IS_OBJECT(pos)) ? STR_VEC2D(pos.x, pos.y) : '(not-a-point)')\r
+#define STR_DIM(a) ((IS_OBJECT(a)) ? (a.width, a.height) : '(not-a-dimension)')\r
+\r
+#define IS_FUNCTION(n) (typeof (n) === 'function')\r
+#define IS_OBJECT(n) (typeof (n) === 'object')\r
+#define IS_DEFINED(n) (typeof (n) !== 'undefined')\r
+#define IS_STRING(n) (typeof (n) === 'string')\r
+#define IS_NUMBER(n) (typeof (n) === 'number')\r
+#define IS_NULL(n) ((n) === null)\r
+#define IS_NON_NULL_OBJECT(n) (!IS_NULL(n) && IS_OBJECT(n))\r
+#define IS_ARRAY(n) (n instanceof Array)\r
+\r
+#define INVOKE_IF_SET_RAW(h, args...) if (IS_FUNCTION(h)) h(args)\r
+#define INVOKE_IF_SET(h, args...) do { \\r
+  INVOKE_IF_SET_RAW(h, args); \\r
+} while (0)\r
+#define DEFAULT_VALUE(h, d) ((IS_DEFINED(h) && !IS_NULL(h)) ? (h) : (d))\r
+#define EVAL_RAW(txt) (function () {\\r
+  if (window.execScript) {window.execScript(txt);} \\r
+  else {window.eval(txt);} })()\r
+#define EVAL(txt) do { EVAL_RAW(txt); } while(0)\r
+#define SET_IF_DEF(name, val) if (IS_DEFINED(val)) name = val\r
+#define IMPORT_ARGUMENT(name) SET_IF_DEF(this.name, name)\r
+\r
+#define EMPTY_DICT() new Object()\r
+#define EMPTY_ARRAY() new Array()\r
+\r
+#define HAS_SUBSTRING(d, str) (String(d).indexOf(str) !== -1)\r
+#ifdef DEBUG\r
+# define LOG_DEBUG(msg) jdisp.logging.stdout.append(msg)\r
+#else\r
+# define LOG_DEBUG(msg)\r
+#endif\r
+#define TRACE(msg) jdisp.logging.stdout.append(__FILE__ + ': ' + msg)\r
+\r
+#define COUNTER_TICK(sec) jdisp.logging.counter.tick(sec)\r
+#define COUNTER_BEGIN(sec) jdisp.logging.counter.begin(sec)\r
+#define COUNTER_END(sec) jdisp.logging.counter.end(sec)\r
+\r
+#endif /* _JDISP_MACROS_JSH */\r
index 617cc46..d7f514d 100644 (file)
@@ -4,6 +4,7 @@
 #define OOP_NAMESPACE jdisp
 OOP_DECLARE_NAMESPACE1(jdisp)
  
+#include "macros.jsh"
 #include "Global.jsh"
 #include "DomUtils.jsh"