Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6. #include <iomanip>
  7. #include <cstdio>
  8.  
  9. /*ЭТО НЕ ВАЖНО*/
  10. enum statement_type {
  11.     BEGIN, VAR, ASSIGNMENT, NUMBER, ERR
  12. } previousstate, currentstate; //Предыдущее и Текущее состояние
  13. enum symb_type {
  14.     SPACE, SEMICOLON, LETTER, LETTER16, NUMERIC, PLUS, MINUS, MULTIPLY, DIVIDE, LBRACKET, RBRACKET, OTHER
  15. } cursymbtype, temp_stype; //Вид текущего символа
  16.  
  17. //функция с параметрами (тек.сост, вид тек.символа, лексема, счётчик лексем)
  18. //что внутри функции не важно, т.к. здесь облегчённый кусок программы, чтобы проще было отловить ошибку
  19. //вид символа не определяется, всегда передаётся параметр MINUS, просто чтобы функция выводила хоть что-то
  20. std::string LexOut (statement_type _state, symb_type _type, std::string str, unsigned ii) {...}
  21. /*ЭТО НЕ ВАЖНО*/
  22.  
  23. int main() {
  24.     setlocale(LC_ALL, "Rus");
  25.  
  26.     unsigned lexcounter = 0;
  27.     std::string buffer = "";
  28.     char cursymb;
  29.    
  30.     std::ifstream file;
  31.     file.open("Source Lang File.txt", std::ios::in);
  32.  
  33.     while ((cursymb = file.get()) != EOF) {
  34.         std::cout<<"\n__прочитали "<<cursymb<<" код символа: "<<(int)cursymb<<"\n";
  35.        
  36.         temp_stype = MINUS;
  37.         buffer += cursymb;
  38.         lexcounter++;
  39.         std::cout << LexOut(previousstate, temp_stype, buffer, lexcounter);
  40.     }
  41.  
  42.     file.close();
  43.     system("pause"); return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement