From 249b9681be59b257789cebbdda69418bddb5432d Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Wed, 16 Jan 2019 12:36:22 -0600 Subject: [PATCH 1/6] initial aca-node --- index.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/index.js b/index.js index 8b13789..f1acbac 100644 --- a/index.js +++ b/index.js @@ -1 +1,14 @@ +"use strict"; +const readline = require('readline'); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}) + +rl.question('',(answer)=>{ + let splitAnswer = answer.split(''); + console.log(splitAnswer); + rl.close(); +}) \ No newline at end of file From fff7d22f4ed89de462199bab6f88e92c27cc0976 Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Wed, 16 Jan 2019 12:43:05 -0600 Subject: [PATCH 2/6] clean, added function --- index.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index f1acbac..9ebd717 100644 --- a/index.js +++ b/index.js @@ -7,8 +7,17 @@ const rl = readline.createInterface({ output: process.stdout }) -rl.question('',(answer)=>{ - let splitAnswer = answer.split(''); - console.log(splitAnswer); - rl.close(); -}) \ No newline at end of file +const openPrompt=()=>{ + rl.question('',(answer)=>{ + let splitAnswer = answer.split(''); + console.log(splitAnswer); + openPrompt(); + rl.close(); + }); +} + +const startNode=()=>{ + openPrompt(); +} + +startNode(); \ No newline at end of file From 656e0c5635837acbd8bd508376b6d831cdb282aa Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Wed, 16 Jan 2019 12:43:52 -0600 Subject: [PATCH 3/6] readme notes update --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d583f75..d6a4f67 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,7 @@ determine the math operator and output the result * Combine the functionality so you can assign a bool or number into a variable If anything else is input that cannot be matched, output `Syntax Error` + + +readline allows user to type input +split input- look for +,-,*,>,etc \ No newline at end of file From 1c51b80eac5e4f7ae26ee669ad05c9b384661e7a Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Wed, 16 Jan 2019 20:10:57 -0600 Subject: [PATCH 4/6] all symbols working --- index.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 9ebd717..5b9e753 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,10 @@ "use strict"; +//remove any spaces? +//separate numerical inputs into their own variable? +//.find or .filter each math/bool symbol +//.join once solved + const readline = require('readline'); const rl = readline.createInterface({ @@ -9,13 +14,55 @@ const rl = readline.createInterface({ const openPrompt=()=>{ rl.question('',(answer)=>{ - let splitAnswer = answer.split(''); - console.log(splitAnswer); + let splitAnswer = answer.split(' '); + //trim spaces here + // console.log(splitAnswer) + lookForSymbol(splitAnswer); + // splitUpInputs(splitAnswer); + // console.log(splitAnswer); openPrompt(); - rl.close(); + // rl.close(); }); } +const lookForSymbol=(splitArray)=>{ + const theSymbol = splitArray[1] + const firstInput = Number(splitArray[0]); + const secondInput = Number(splitArray[2]); + if(theSymbol === '+'){ + console.log(firstInput + secondInput) + } + if(theSymbol === '-'){ + console.log(firstInput - secondInput) + } + if(theSymbol === '*'){ + console.log(firstInput * secondInput) + } + if(theSymbol === '/'){ + console.log(firstInput / secondInput) + } + if(theSymbol === '>'){ + if(firstInput > secondInput){ + console.log('true') + }else console.log('false') + } + if(theSymbol === '<'){ + if(firstInput < secondInput){ + console.log('true') + }else console.log('false') + } + if(theSymbol === '==='){ + if(firstInput === secondInput){ + console.log('true') + }else console.log('false') + } + if(theSymbol === '!=='){ + if(firstInput !== secondInput){ + console.log('true') + }else console.log('false') + } +} + const startNode=()=>{ openPrompt(); } From 5f549bc09eb66af51deb80531e56c43fdb27f00f Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Thu, 17 Jan 2019 18:32:40 -0600 Subject: [PATCH 5/6] not sure what I changed, but pushing --- index.js | 94 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 41 deletions(-) diff --git a/index.js b/index.js index 5b9e753..2f25e08 100644 --- a/index.js +++ b/index.js @@ -15,52 +15,64 @@ const rl = readline.createInterface({ const openPrompt=()=>{ rl.question('',(answer)=>{ let splitAnswer = answer.split(' '); - //trim spaces here - // console.log(splitAnswer) - lookForSymbol(splitAnswer); - // splitUpInputs(splitAnswer); - // console.log(splitAnswer); + separateStuff(splitAnswer); openPrompt(); - // rl.close(); }); } -const lookForSymbol=(splitArray)=>{ - const theSymbol = splitArray[1] - const firstInput = Number(splitArray[0]); - const secondInput = Number(splitArray[2]); - if(theSymbol === '+'){ - console.log(firstInput + secondInput) - } - if(theSymbol === '-'){ - console.log(firstInput - secondInput) - } - if(theSymbol === '*'){ - console.log(firstInput * secondInput) - } - if(theSymbol === '/'){ - console.log(firstInput / secondInput) - } - if(theSymbol === '>'){ - if(firstInput > secondInput){ - console.log('true') - }else console.log('false') - } - if(theSymbol === '<'){ - if(firstInput < secondInput){ - console.log('true') - }else console.log('false') - } - if(theSymbol === '==='){ - if(firstInput === secondInput){ - console.log('true') - }else console.log('false') - } - if(theSymbol === '!=='){ - if(firstInput !== secondInput){ - console.log('true') - }else console.log('false') +const variable = { + name: '', + value: '', +} + +const separateStuff=(splitArray)=>{ + const indexZero = splitArray[0]; + const indexOne = splitArray[1] + const indexTwo = splitArray[2]; + const indexThree = splitArray[3]; + if(!isNaN(Number(indexZero)) && !isNaN(Number(indexTwo))){ + if(indexOne === '+'){ + console.log(Number(indexZero) + Number(indexTwo)) + } + if(indexOne === '-'){ + console.log(Number(indexZero) - Number(indexTwo)) + } + if(indexOne === '*'){ + console.log(Number(indexZero) * Number(indexTwo)) + } + if(indexOne === '/'){ + console.log(Number(indexZero) / Number(indexTwo)) + } + if(indexOne === '>'){ + if(Number(indexZero) > Number(indexTwo)){ + console.log('true') + }else console.log('false') + } + if(indexOne === '<'){ + if(Number(indexZero) < Number(indexTwo)){ + console.log('true') + }else console.log('false') + } + if(indexOne === '==='){ + if(Number(indexZero) === Number(indexTwo)){ + console.log('true') + }else console.log('false') + } + if(indexOne === '!=='){ + if(Number(indexZero) !== Number(indexTwo)){ + console.log('true') + }else console.log('false') + } + }else if(indexZero === 'let' && indexTwo === '='){ + variable.value = indexThree; + variable.name = indexOne; + }else if(indexZero === variable.name){ + console.log(variable.value) } + // else if(){ + + // } + else console.log('Syntax error') } const startNode=()=>{ From 07836260179081426405bfe6b3855c0235954e9b Mon Sep 17 00:00:00 2001 From: Alan Houston Date: Mon, 21 Jan 2019 17:24:29 -0600 Subject: [PATCH 6/6] spacing no longer an issue, but variable not coded --- index.js | 125 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 49 deletions(-) diff --git a/index.js b/index.js index 2f25e08..34ac860 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,7 @@ //remove any spaces? //separate numerical inputs into their own variable? //.find or .filter each math/bool symbol -//.join once solved +// .join once solved? const readline = require('readline'); @@ -12,10 +12,12 @@ const rl = readline.createInterface({ output: process.stdout }) -const openPrompt=()=>{ +function openPrompt(){ rl.question('',(answer)=>{ - let splitAnswer = answer.split(' '); - separateStuff(splitAnswer); + let splitAnswer = answer.split(''); + // console.log(splitAnswer) + // separateStuff(splitAnswer); + separateStuff(answer); openPrompt(); }); } @@ -25,54 +27,79 @@ const variable = { value: '', } -const separateStuff=(splitArray)=>{ - const indexZero = splitArray[0]; - const indexOne = splitArray[1] - const indexTwo = splitArray[2]; - const indexThree = splitArray[3]; - if(!isNaN(Number(indexZero)) && !isNaN(Number(indexTwo))){ - if(indexOne === '+'){ - console.log(Number(indexZero) + Number(indexTwo)) - } - if(indexOne === '-'){ - console.log(Number(indexZero) - Number(indexTwo)) - } - if(indexOne === '*'){ - console.log(Number(indexZero) * Number(indexTwo)) - } - if(indexOne === '/'){ - console.log(Number(indexZero) / Number(indexTwo)) - } - if(indexOne === '>'){ - if(Number(indexZero) > Number(indexTwo)){ - console.log('true') - }else console.log('false') - } - if(indexOne === '<'){ - if(Number(indexZero) < Number(indexTwo)){ - console.log('true') - }else console.log('false') - } - if(indexOne === '==='){ - if(Number(indexZero) === Number(indexTwo)){ - console.log('true') - }else console.log('false') - } - if(indexOne === '!=='){ - if(Number(indexZero) !== Number(indexTwo)){ - console.log('true') - }else console.log('false') +let partsOfInput = { + leftSide: [], + operator: [], + rightSide: [] +} + +function clearPartsOfInput(){ + partsOfInput.leftSide = []; + partsOfInput.rightSide = []; + partsOfInput.operator = []; +} + +function separateStuff(answer){ + // const indexZero = splitArray[0]; + // const indexOne = splitArray[1] + // const indexTwo = splitArray[2]; + // const indexThree = splitArray[3]; + let noSpaceArray = answer.trim().replace(/\s+/g,'').split(''); + let switchSides = false; + clearPartsOfInput(); + noSpaceArray.forEach(item => { + if (!isNaN(Number(item)) && switchSides === false){ + partsOfInput.leftSide.push(item); + }else if (!isNaN(Number(item)) && switchSides === true){ + partsOfInput.rightSide.push(item); + }else if (item === '+' || '-' || '*' || '/' || '!' || '=' || '>' || '<'){ + partsOfInput.operator.push(item); + switchSides = true; } - }else if(indexZero === 'let' && indexTwo === '='){ - variable.value = indexThree; - variable.name = indexOne; - }else if(indexZero === variable.name){ - console.log(variable.value) + }); + let solidLeftSide = partsOfInput.leftSide.join('') + let solidRightSide = partsOfInput.rightSide.join('') + let solidOperator = partsOfInput.operator.join('') + //add if's for each index to be variable + if(solidOperator === '+'){ + console.log(Number(solidLeftSide) + Number(solidRightSide)) + } + else if(solidOperator === '-'){ + console.log(Number(solidLeftSide) - Number(solidRightSide)) + } + else if(solidOperator === '*'){ + console.log(Number(solidLeftSide) * Number(solidRightSide)) + } + else if(solidOperator === '/'){ + console.log(Number(solidLeftSide) / Number(solidRightSide)) + } + else if(solidOperator === '>'){ + if(Number(solidLeftSide) > Number(solidRightSide)){ + console.log('true') + }else console.log('false') + } + else if(solidOperator === '<'){ + if(Number(solidLeftSide) < Number(solidRightSide)){ + console.log('true') + }else console.log('false') + } + else if(solidOperator === '==='){ + if(Number(solidLeftSide) === Number(solidRightSide)){ + console.log('true') + }else console.log('false') + } + else if(solidOperator === '!=='){ + if(Number(solidLeftSide) !== Number(solidRightSide)){ + console.log('true') + }else console.log('false') } - // else if(){ - - // } else console.log('Syntax error') + // else if(indexZero === 'let' && indexTwo === '='){ + // variable.value = indexThree; + // variable.name = indexOne; + // }else if(indexZero === variable.name){ + // console.log(variable.value) + // } } const startNode=()=>{