Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. import React from 'react';
  2. import operPriority from './operPriority';
  3. import Columns from './columns';
  4.  
  5. function TempVisual(props) {
  6.  
  7. let inf = props.exp;
  8. let car = [];
  9. let post = [];
  10. let msg = '';
  11. let tog = props.toggle;
  12. let letterNumber = /^[0-9a-zA-Z]+$/;
  13. let p = 0;
  14. let c = 0;
  15. let anim = [];
  16.  
  17. for (let i=0; i < inf.length; i++) {
  18. let a = inf[i];
  19. inf = inf.slice(i, inf.length);
  20.  
  21. if (a.match(letterNumber)) {
  22. msg = 'Είναι αριθμός, συνεπώς περνάει απευθείας στο αποτέλεσμα.';
  23. post[p]= a;
  24. p ++;
  25. }
  26.  
  27. else if (a === "(") {
  28. msg = 'Είναι (, συνεπώς παραμένει ως κρατούμενο.';
  29. car[c] = a;
  30. c ++;
  31. }
  32.  
  33. else if (a === ")") {
  34. while (car.length > 0 && car[car.length-1] !== "(") {
  35. post[p] = car.slice(car.length-1);
  36. p ++;
  37. msg = 'Είναι ), συνεπώς η έκφραση έκλεισε και παύει να είναι κρατούμενο.';
  38. }
  39.  
  40. if (car.length > 0 && car[car.length-1] !== "(") {
  41. msg = 'Invalid Expression / 2 open parenthesis.';
  42. }
  43. else {
  44. post[p] = car.slice(car.length-1);
  45. p ++;
  46. msg = 'H έκφραση έκλεισε και παύει να είναι κρατούμενο η (, συνεπώς έχουμε το τελικό αποτέλεσμα.';
  47. }
  48. }
  49.  
  50. else {
  51. while(car.length > 0 && operPriority(a) <= operPriority(car[car.length-1])) {
  52. post[p] = car.slice(car.length-1);
  53. p ++;
  54. msg = 'Όσο ο Operator έχει μικρότερη προταιρεότητα από τον αμέσως προηγούμενο του, ο προηγούμενος Operator θα περνάει στο postfix.';
  55. }
  56. car[c] = a;
  57. c ++;
  58. msg = 'Invalid Expression';
  59. }
  60.  
  61. return(
  62. <div>
  63. <Columns
  64. spec = 'Specifications: '
  65. infix = {inf}
  66. carry = {car}
  67. postfix = {post}
  68. message = {msg}
  69. toggle = {tog}
  70. />
  71. </div>
  72. );
  73. }
  74.  
  75. while (car.length > 0) {
  76. post[p] = car.slice(car.length-1);
  77. p ++;
  78. msg = 'add to carry';
  79.  
  80. }
  81.  
  82. return(
  83. <div>
  84. <Columns
  85. spec = 'Specifications: '
  86. infix = {inf}
  87. carry = {car}
  88. postfix = {post}
  89. message = {msg}
  90. toggle = {tog}
  91. />
  92. </div>
  93. );
  94. }
  95.  
  96. export default TempVisual;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement