home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ssvpar.zip / SSTUTOR.YCC < prev    next >
Text File  |  1994-11-26  |  1KB  |  50 lines

  1. // Expression rule file
  2.  
  3. %expression Main
  4.  
  5. '[ \n\t]+'               %ignore;
  6. ';'                      End, ';';
  7. '\+'                     Plus, '+';
  8. '\-'                     Minus, '-';
  9. '\/'                     Div, '/';
  10. '\*'                     Mult, '*';
  11. '\*\*'                   Power, '**';
  12. '\('                     OParen, '(';
  13. '\)'                     CParen, ')';
  14. '[0-9]+'                 Number, 'n';
  15. '[a-z_A-Z][a-z_A-Z0-9]*' Name, 'name';
  16. 'a'                      A, 'a';
  17. 'ab'                     Ab, 'ab';
  18. 'abc'                    Abc, 'abc';
  19. 'abcd'                   Abcd, 'abcd';
  20.  
  21. %prec
  22.  
  23. 1, '+',  %left;
  24. 1, '-',  %left;
  25. 2, '*',  %left;
  26. 2, '/',  %left;
  27. 3, '**', %right;
  28.  
  29. %production start
  30.  
  31. Start         start         -> exprStatement;
  32. StartList     start         -> start exprStatement;
  33.  
  34. ExprSingle    exprStatement -> expr ';';
  35. ExprError     exprStatement -> %error ';';
  36.  
  37. ExprPlus      expr          -> expr '+'  expr;
  38. ExprMinus     expr          -> expr '-'  expr;
  39. ExprMult      expr          -> expr '*'  expr;
  40. ExprDiv       expr          -> expr '/'  expr;
  41. ExprPower     expr          -> expr '**' expr;
  42. ExprNested    expr          -> '(' expr ')';
  43. ExprName      expr          -> 'name';
  44. ExprNumber    expr          -> 'n';
  45. ExprA         expr          -> 'a';
  46. ExprAb        expr          -> 'ab';
  47. ExprAbc       expr          -> 'abc';
  48. ExprAbcd      expr          -> 'abcd';
  49.  
  50.