Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React from 'react';
- import operPriority from './operPriority';
- import Columns from './columns';
- function TempVisual(props) {
- let inf = props.exp;
- let car = [];
- let post = [];
- let msg = '';
- let tog = props.toggle;
- let letterNumber = /^[0-9a-zA-Z]+$/;
- let p = 0;
- let c = 0;
- let anim = [];
- for (let i=0; i < inf.length; i++) {
- let a = inf[i];
- inf = inf.slice(i, inf.length);
- if (a.match(letterNumber)) {
- msg = 'Είναι αριθμός, συνεπώς περνάει απευθείας στο αποτέλεσμα.';
- post[p]= a;
- p ++;
- }
- else if (a === "(") {
- msg = 'Είναι (, συνεπώς παραμένει ως κρατούμενο.';
- car[c] = a;
- c ++;
- }
- else if (a === ")") {
- while (car.length > 0 && car[car.length-1] !== "(") {
- post[p] = car.slice(car.length-1);
- p ++;
- msg = 'Είναι ), συνεπώς η έκφραση έκλεισε και παύει να είναι κρατούμενο.';
- }
- if (car.length > 0 && car[car.length-1] !== "(") {
- msg = 'Invalid Expression / 2 open parenthesis.';
- }
- else {
- post[p] = car.slice(car.length-1);
- p ++;
- msg = 'H έκφραση έκλεισε και παύει να είναι κρατούμενο η (, συνεπώς έχουμε το τελικό αποτέλεσμα.';
- }
- }
- else {
- while(car.length > 0 && operPriority(a) <= operPriority(car[car.length-1])) {
- post[p] = car.slice(car.length-1);
- p ++;
- msg = 'Όσο ο Operator έχει μικρότερη προταιρεότητα από τον αμέσως προηγούμενο του, ο προηγούμενος Operator θα περνάει στο postfix.';
- }
- car[c] = a;
- c ++;
- msg = 'Invalid Expression';
- }
- return(
- <div>
- <Columns
- spec = 'Specifications: '
- infix = {inf}
- carry = {car}
- postfix = {post}
- message = {msg}
- toggle = {tog}
- />
- </div>
- );
- }
- while (car.length > 0) {
- post[p] = car.slice(car.length-1);
- p ++;
- msg = 'add to carry';
- }
- return(
- <div>
- <Columns
- spec = 'Specifications: '
- infix = {inf}
- carry = {car}
- postfix = {post}
- message = {msg}
- toggle = {tog}
- />
- </div>
- );
- }
- export default TempVisual;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement