A simple C program to test Seaspider.
authorSafey A.Halim <safey.allah@gmail.com>
Thu, 11 Nov 2010 22:04:04 +0000 (22:04 +0000)
committerSafey A.Halim <safey.allah@gmail.com>
Thu, 11 Nov 2010 22:04:04 +0000 (22:04 +0000)
src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c [new file with mode: 0644]

diff --git a/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c b/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c
new file mode 100644 (file)
index 0000000..1a44d21
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * @file seaspider/SeaspiderTest.c
+ * @brief C file to test Seaspider's parsing
+ */
+
+/* include */
+#include <stdio.h>
+
+
+#define PRE_PROC_DIR 0
+
+struct MyStruct {
+       int member;
+       struct MyStruct *part;
+};
+
+
+enum  MyEnum{
+       enumMember1,
+       enumMember2,
+       enumMember3
+};
+
+
+static int fun(int arg1, int arg2)
+{
+       return arg1 + arg2;
+}
+
+
+int main(int args, const char * argv[])
+{
+       /* variables declarations */
+       struct MyStruct whole;
+       struct MyStruct part;
+       enum MyEnum myEnum;
+       int i;
+       int x, y;
+       
+       /* Allocations and assignments */
+       whole.member = 1;
+       whole.part = &part;
+       whole.part->member = 2;
+       myEnum = enumMember3;
+       x = 0, y = 1;
+       
+       /* block */
+       {
+               /* arithmetic and logic operations */
+               float f = 20.0;         
+               whole.part->member = (int)(whole.part->member + 5) - 6; // cast - multilevel assignment
+       }
+       
+       /* for loop */
+       for (i = 0; i < 2; i++) {
+               /* conditional expressions */
+               if ( x > 0) {
+                       while (y < 5) {
+                               y++;
+                       }
+               } else if (x > 0 || y == 4) {
+                       do {
+                               y--;
+                       } while (y != 1);
+               }
+               else {
+                       switch (myEnum) {
+                       case enumMember1:
+                               fun(enumMember1, enumMember2);
+                               break;
+                       case enumMember2:
+                               fun(enumMember1, enumMember2 ? enumMember2 : enumMember1); // ternary operator
+                               break;
+                       default:
+                               fun(enumMember1, PRE_PROC_DIR); // preprocessing directive
+                               break;
+                       }
+               }
+       }
+       
+       return 1;
+}