parse.cvc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // extern function
  2. extern void printInt(int val);
  3. // extern variable
  4. extern int ext;
  5. // static functions with all possible return types
  6. bool bfoo() { return true; }
  7. int ifoo() { return 1; }
  8. float ffoo() { return 1.0; }
  9. void vfoo() {}
  10. // function with parameters
  11. int bar(int a, float b) {
  12. return a + (int)b; // typecast
  13. }
  14. void baz(bool a) {}
  15. // exported function
  16. export int main() {
  17. // regular vardec
  18. bool uninitialized;
  19. int i;
  20. int a;
  21. int b;
  22. int c;
  23. // initialized vardec
  24. float initialized = 2.5;
  25. uninitialized = false; // assignment
  26. vfoo(); // funcall
  27. // if-statement
  28. if (bfoo()) {
  29. i = 1;
  30. }
  31. if (bfoo())
  32. i = 1;
  33. // if-else statement
  34. if (bfoo()) {
  35. i = 2;
  36. } else {
  37. i = 3;
  38. }
  39. if (bfoo())
  40. i = 2;
  41. else
  42. i = 3;
  43. if (bfoo())
  44. i = 2;
  45. else if (bfoo())
  46. i = 3;
  47. else
  48. i = 4;
  49. // while-loop
  50. while (bfoo()) {
  51. vfoo();
  52. }
  53. while (bfoo())
  54. vfoo();
  55. // do-while-loop
  56. do {
  57. vfoo();
  58. } while (bfoo());
  59. do vfoo(); while (bfoo());
  60. // for-loop
  61. for (int i = 0, 10) {
  62. vfoo();
  63. }
  64. for (int i = 0, 10, 2) {
  65. vfoo();
  66. }
  67. for (int i = a, b, c) baz((bool)i);
  68. // expressions (check precedences by hand!)
  69. i = a + (b * c % i) / c - -10;
  70. if (i < 0 || i > 100)
  71. if (i >= 0 && i <= 100 || i != 0 && i != 100)
  72. i = -i;
  73. // return statement
  74. return 0;
  75. }