Guest User

Untitled

a guest
Nov 18th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. class Codigo
  9. {
  10. char * codigo;
  11.  
  12. public:
  13.  
  14. Codigo(char * codigo)
  15. {
  16. this -> codigo = codigo;
  17. }
  18.  
  19. void analizador()
  20. {
  21. char * token;
  22. char * espacio = " ";
  23. char * sig = NULL;
  24.  
  25. token = strtok_s(codigo, espacio, &sig);
  26. cout << "\nTokens\t\tSignificado\n";
  27. while(token)
  28. {
  29. if(!esNumero(token))
  30. {
  31. if(!esOtro(token))
  32. {
  33. cout << token << "\t\t" << "error\n";
  34. }
  35. }
  36. token = strtok_s(NULL, espacio, &sig);
  37. }
  38.  
  39. }
  40.  
  41. bool esNumero(char * tok)
  42. {
  43. bool ind = true;
  44. for(int i = 0; tok[i] && ind; i++)
  45. {
  46. if(tok[i] != '!')
  47. ind = false;
  48. }
  49. if(ind)
  50. cout << tok << "\t\t" << "numero\n";
  51. return ind;
  52. }
  53.  
  54.  
  55.  
  56. bool esOtro(char * tok)
  57. {
  58. char * tokens[3] = {"con", "sin", "es"};
  59. char * signif[3] = {"operador +", "operador -", "delimitador"};
  60.  
  61. int p = 0;
  62. bool ind = false;
  63. while(p < 3 && !ind)
  64. {
  65. if(!strcmp(tok, tokens[p]))
  66. {
  67. cout << tok << "\t\t" << signif[p] << endl;
  68. ind = true;
  69. }
  70. p++;
  71. }
  72. return ind;
  73. }
  74.  
  75. ~Codigo(void)
  76. {
  77. }
  78. };
Add Comment
Please, Sign In to add comment