Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // testing a support for flags
- #define FLAG
- // testing simple numeric define
- #define RELE1 sys[231]
- #define TEPLOTA sys[310]
- #define EXPR ((14 + 76) / 13)
- #define __SYS_FLASH 99
- #define __SYS_FLASH_COUNT 16
- #define SYS_FLASH_1 sys[100]
- #define SYS_FLASH_2 sys[101]
- #define SYS_FLASH_3 sys[102]
- #define ADD(a, b) a + b
- #define MOO() echo("moo!")
- #define MULTILINE(arg, boo, foo) call_something(arg, boo); \
- echo("Yo dawg!", boo, foo); \
- call_something_else(ADD(85,boo), 37, 44, 'foo')
- #include "other.c"
- /*
- * Here is a comment
- */
- I_AM_BETWEEN_COMMENTS();
- #ifdef FLAG
- stuff;
- #else
- other stuff;
- #endif
- /* and more */
- #define UGLY_SHIT(arg, barg, marg) some stuff goes \ // comment
- and more of it \ /*yo
- dawg */ here is more of the macro \
- and one more line. // comment for fun
- shit();
- main
- {
- RELE1 = 255;
- goto home;
- if(TEPLOTA > 16) {
- sys[__SYS_FLASH + 13] = ADD(7, 15);
- MOO();
- MULTILINE(12, add(4, 3), "THIRD");
- }
- home:
- #ifdef FLAG
- MOO();
- moo();
- #else
- // FLAG not set
- #endif
- }
- -----------------------------------------------------------------
- :::::: SDS-C Plus ::::::
- Source: test/test.c
- T_DefineDirective: #define FLAG 1
- T_DefineDirective: #define RELE1 sys[231]
- T_DefineDirective: #define TEPLOTA sys[310]
- T_DefineDirective: #define EXPR ((14 + 76) / 13)
- T_DefineDirective: #define __SYS_FLASH 99
- T_DefineDirective: #define __SYS_FLASH_COUNT 16
- T_DefineDirective: #define SYS_FLASH_1 sys[100]
- T_DefineDirective: #define SYS_FLASH_2 sys[101]
- T_DefineDirective: #define SYS_FLASH_3 sys[102]
- T_DefineDirective: #define ADD(a, b) a + b
- T_DefineDirective: #define MOO() echo("moo!")
- 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')
- T_IncludeDirective: #include "other.c"
- T_Identifier: I_AM_BETWEEN_COMMENTS
- T_Paren: ()
- T_StatementEnd: ;
- T_IfdefDirective: #ifdef FLAG
- T_Identifier: stuff
- T_StatementEnd: ;
- T_ElseDirective: #else
- T_Identifier: other
- T_Identifier: stuff
- T_StatementEnd: ;
- T_EndifDirective: #endif
- 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.
- T_Identifier: shit
- T_Paren: ()
- T_StatementEnd: ;
- T_Identifier: main
- 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 }
- T_Identifier: RELE1
- T_Rvalue: = 255
- T_AssignmentOperator: =
- T_Expression: 255
- T_Number: 255
- T_StatementEnd: ;
- T_Identifier: goto
- T_Identifier: home
- T_StatementEnd: ;
- T_Identifier: if
- T_Paren: (TEPLOTA > 16)
- T_Expression: TEPLOTA > 16
- T_Identifier: TEPLOTA
- T_Operator: >
- T_Number: 16
- T_CodeBlock: { sys[__SYS_FLASH + 13] = ADD(7, 15); MOO(); MULTILINE(12, add(4, 3), "THIRD"); }
- T_Identifier: sys
- T_Bracket: [__SYS_FLASH + 13]
- T_Expression: __SYS_FLASH + 13
- T_Identifier: __SYS_FLASH
- T_Operator: +
- T_Number: 13
- T_Rvalue: = ADD(7, 15)
- T_AssignmentOperator: =
- T_Expression: ADD(7, 15)
- T_Identifier: ADD
- T_Paren: (7, 15)
- T_Expression: 7
- T_Number: 7
- T_Expression: 15
- T_Number: 15
- T_StatementEnd: ;
- T_Identifier: MOO
- T_Paren: ()
- T_StatementEnd: ;
- T_Identifier: MULTILINE
- T_Paren: (12, add(4, 3), "THIRD")
- T_Expression: 12
- T_Number: 12
- T_Expression: add(4, 3)
- T_Identifier: add
- T_Paren: (4, 3)
- T_Expression: 4
- T_Number: 4
- T_Expression: 3
- T_Number: 3
- T_Expression: "THIRD"
- T_String: "THIRD"
- T_StatementEnd: ;
- T_Label: home:
- T_IfdefDirective: #ifdef FLAG
- T_Identifier: MOO
- T_Paren: ()
- T_StatementEnd: ;
- T_Identifier: moo
- T_Paren: ()
- T_StatementEnd: ;
- T_ElseDirective: #else
- T_EndifDirective: #endif
Advertisement
Add Comment
Please, Sign In to add comment