Guest User

прог

a guest
Dec 15th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include<iostream>
  3. #include<string>
  4. #include<map>
  5. #include<cctype>
  6. #include<sstream>
  7.  
  8.  
  9.  
  10. int main()
  11. {
  12. setlocale(0, "Russian");
  13. using namespace std;
  14. enum Token_value
  15. {
  16. NAME, NUMBER, END,
  17. PLUS = '+', MINUS = '-', MUL = '*', DIV = '/',
  18. PRINT = ';', ASSIGN = '=', LP = '(', RP = ')'
  19. };
  20. Token_value curr_tok = PRINT;
  21.  
  22.  
  23. double number_value;
  24. string string_value;
  25. {
  26. Token_value get_token();
  27. {
  28. char ch;
  29. do {
  30. if (!cin.get(ch)) return curr_tok = END;
  31. } while (ch != '\n' && isspace(ch));
  32. switch (ch) {
  33. case ';':
  34. case '\n':
  35. return curr_tok = PRINT;
  36. case '*':
  37. case '/':
  38. case '+':
  39. case '-':
  40. case '(':
  41. case ')':
  42. case '=':
  43. return curr_tok = Token_value(ch);
  44. case '0': case '1': case '2': case '3': case '4':
  45. case '5': case '6': case '7': case '8': case '9':
  46. case '.':
  47. cin.putback(ch);
  48. cin >> number_value;
  49. return curr_tok = NUMBER;
  50. default:
  51. if (isalnum(ch))
  52. {
  53. string_value = ch;
  54. while (cin.get(ch) && isalnum(ch));
  55. string_value.push_back(ch);
  56. cin.putback(ch);
  57. return curr_tok = NAME;
  58. }
  59. cout << ("Использована недопустимая лексема \n");
  60. return curr_tok = PRINT;
  61. }
  62. }
  63. }
  64.  
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment