MightyPork

SDS-C Plus

Aug 3rd, 2014
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.06 KB | None | 0 0
  1. // testing a support for flags
  2. #define FLAG
  3.  
  4. // testing simple numeric define
  5. #define RELE1 sys[231]
  6. #define TEPLOTA sys[310]
  7.  
  8. #define EXPR ((14 + 76) / 13)
  9.  
  10. #define __SYS_FLASH 99
  11. #define __SYS_FLASH_COUNT 16
  12. #define SYS_FLASH_1 sys[100]
  13. #define SYS_FLASH_2 sys[101]
  14. #define SYS_FLASH_3 sys[102]
  15.  
  16. #define ADD(a, b) a + b
  17.  
  18. #define MOO() echo("moo!")
  19.  
  20. #define MULTILINE(arg, boo, foo)  call_something(arg, boo); \
  21.                                   echo("Yo dawg!", boo, foo); \
  22.                                   call_something_else(ADD(85,boo), 37, 44, 'foo')
  23.  
  24. #include "other.c"
  25.  
  26. /*
  27.  * Here is a comment
  28.  */
  29.  
  30. I_AM_BETWEEN_COMMENTS();
  31.  
  32. #ifdef FLAG
  33.     stuff;
  34. #else
  35.     other stuff;
  36. #endif
  37.  
  38. /* and more */
  39.  
  40. #define UGLY_SHIT(arg, barg, marg) some stuff goes \ // comment
  41.     and more of it \ /*yo
  42.     dawg */ here is more of the macro \
  43.     and one more line. // comment for fun
  44.  
  45. shit();
  46.  
  47. main
  48. {
  49.     RELE1 = 255;
  50.     goto home;
  51.     if(TEPLOTA > 16) {
  52.         sys[__SYS_FLASH + 13] = ADD(7, 15);
  53.         MOO();
  54.         MULTILINE(12, add(4, 3), "THIRD");
  55.     }
  56.     home:
  57. #ifdef FLAG
  58.     MOO();
  59.     moo();
  60. #else
  61.     // FLAG not set
  62. #endif
  63. }
  64.  
  65.  
  66. -----------------------------------------------------------------
  67.  
  68. :::::: SDS-C Plus ::::::
  69.  
  70. Source: test/test.c
  71.     T_DefineDirective: #define FLAG 1
  72.     T_DefineDirective: #define RELE1 sys[231]
  73.     T_DefineDirective: #define TEPLOTA sys[310]
  74.     T_DefineDirective: #define EXPR ((14 + 76) / 13)
  75.     T_DefineDirective: #define __SYS_FLASH 99
  76.     T_DefineDirective: #define __SYS_FLASH_COUNT 16
  77.     T_DefineDirective: #define SYS_FLASH_1 sys[100]
  78.     T_DefineDirective: #define SYS_FLASH_2 sys[101]
  79.     T_DefineDirective: #define SYS_FLASH_3 sys[102]
  80.     T_DefineDirective: #define ADD(a, b) a + b
  81.     T_DefineDirective: #define MOO() echo("moo!")
  82.     T_DefineDirective: #define MULTILINE(arg, boo, foo) call_something(arg, boo); echo("Yo dawg!", boo, foo); call_something_else(ADD(85,boo), 37, 44, 'foo')
  83.     T_IncludeDirective: #include "other.c"
  84.     T_Identifier: I_AM_BETWEEN_COMMENTS
  85.     T_Paren: ()
  86.     T_StatementEnd: ;
  87.     T_IfdefDirective: #ifdef FLAG
  88.     T_Identifier: stuff
  89.     T_StatementEnd: ;
  90.     T_ElseDirective: #else
  91.     T_Identifier: other
  92.     T_Identifier: stuff
  93.     T_StatementEnd: ;
  94.     T_EndifDirective: #endif
  95.     T_DefineDirective: #define UGLY_SHIT(arg, barg, marg) some stuff goes and more of it here is more of the macro and one more line.
  96.     T_Identifier: shit
  97.     T_Paren: ()
  98.     T_StatementEnd: ;
  99.     T_Identifier: main
  100.     T_CodeBlock: { RELE1 = 255; goto home; if(TEPLOTA > 16) { sys[__SYS_FLASH + 13] = ADD(7, 15); MOO(); MULTILINE(12, add(4, 3), "THIRD"); } /*for(i=0; i<100; i++) { hereBeLions(); }*/ home: #ifdef FLAG MOO(); moo(); #else // FLAG not set #endif }
  101.         T_Identifier: RELE1
  102.         T_Rvalue: = 255
  103.             T_AssignmentOperator: =
  104.             T_Expression: 255
  105.                 T_Number: 255
  106.         T_StatementEnd: ;
  107.         T_Identifier: goto
  108.         T_Identifier: home
  109.         T_StatementEnd: ;
  110.         T_Identifier: if
  111.         T_Paren: (TEPLOTA > 16)
  112.             T_Expression: TEPLOTA > 16
  113.                 T_Identifier: TEPLOTA
  114.                 T_Operator: >
  115.                 T_Number: 16
  116.         T_CodeBlock: { sys[__SYS_FLASH + 13] = ADD(7, 15); MOO(); MULTILINE(12, add(4, 3), "THIRD"); }
  117.             T_Identifier: sys
  118.             T_Bracket: [__SYS_FLASH + 13]
  119.                 T_Expression: __SYS_FLASH + 13
  120.                     T_Identifier: __SYS_FLASH
  121.                     T_Operator: +
  122.                     T_Number: 13
  123.             T_Rvalue: = ADD(7, 15)
  124.                 T_AssignmentOperator: =
  125.                 T_Expression: ADD(7, 15)
  126.                     T_Identifier: ADD
  127.                     T_Paren: (7, 15)
  128.                         T_Expression: 7
  129.                             T_Number: 7
  130.                         T_Expression: 15
  131.                             T_Number: 15
  132.             T_StatementEnd: ;
  133.             T_Identifier: MOO
  134.             T_Paren: ()
  135.             T_StatementEnd: ;
  136.             T_Identifier: MULTILINE
  137.             T_Paren: (12, add(4, 3), "THIRD")
  138.                 T_Expression: 12
  139.                     T_Number: 12
  140.                 T_Expression: add(4, 3)
  141.                     T_Identifier: add
  142.                     T_Paren: (4, 3)
  143.                         T_Expression: 4
  144.                             T_Number: 4
  145.                         T_Expression: 3
  146.                             T_Number: 3
  147.                 T_Expression: "THIRD"
  148.                     T_String: "THIRD"
  149.             T_StatementEnd: ;
  150.         T_Label: home:
  151.         T_IfdefDirective: #ifdef FLAG
  152.         T_Identifier: MOO
  153.         T_Paren: ()
  154.         T_StatementEnd: ;
  155.         T_Identifier: moo
  156.         T_Paren: ()
  157.         T_StatementEnd: ;
  158.         T_ElseDirective: #else
  159.         T_EndifDirective: #endif
Advertisement
Add Comment
Please, Sign In to add comment