Advertisement
alexarcan

syntax_analizer (to continue)

Apr 14th, 2016
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. int exprOr(){
  2.   if(exprAnd()){
  3.     if(exprOr1())
  4.       return 1;
  5.   }
  6.   return 0;
  7. }
  8.  
  9. int exprOr1(){
  10.   if(consume(OR)){
  11.     if(exprAnd()){
  12.       if(exprOr1())
  13.       return 1;
  14.     }else
  15.       tkerr("Invalid fct after ||");
  16.   }
  17.   return 1;
  18. }
  19.  
  20. int exprAnd(){
  21.     if(exprEq()){
  22.       if(exprAnd1())
  23.     return 1;
  24.      
  25.     }
  26.     return 0;
  27. }
  28.  
  29. int exprAnd1(){
  30.     if(consume(AND)){
  31.     if(exprEq()){
  32.      if(exprAnd1())
  33.        return 1;
  34.     }else
  35.       tkerr("Invalid fct after ||");
  36.     }
  37.     return 1;
  38. }
  39.  
  40. int exprEq(){
  41.     if(exprRel()){
  42.     if(exprEq1())
  43.         return 1;
  44.     }
  45.     return 0;
  46. }
  47.  
  48. int exprEq1(){
  49.     if(consume(EQUAL) || consume(NOTEQ)){
  50.     if(exprRel()){
  51.         if(exprEq1())
  52.           return 1;
  53.     }else
  54.        tkerr("Invalid fct after ||");
  55.     }
  56.     return 1;
  57. }
  58.  
  59.  
  60. int exprRel(){
  61.   if(exprAdd()){
  62.     if(exprRel1())
  63.       return 1;
  64.   }
  65.   return 0;
  66. }
  67.  
  68. int exprRel1(){
  69.   if(consume(LESS) || consume(LESSEQ) || consume(GREATER) || consume(GREATEREQ)){
  70.     if(exprAdd()){
  71.       if(exprRel1())
  72.       return 1;
  73.     }else
  74.       tkerr("Invalid fct after ||");
  75.   }
  76.   return 1;
  77. }
  78.  
  79.  
  80. int exprAdd(){
  81.   if(exprMul()){
  82.     if(exprAdd1())
  83.       return 1;
  84.   }
  85.   return 0;
  86. }
  87.  
  88. int exprAdd1(){
  89.   if(consume(ADD) || consume(SUB)){
  90.     if(exprMul()){
  91.       if(exprAdd1())
  92.       return 1;
  93.     }else
  94.       tkerr("Invalid fct after ||");
  95.   }
  96.   return 1;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement