JSFiddle - React, Tailwind, and code Playground
by puckipedia
CoffeeScript
operators = ["+", "-"]
step2operators = ["+","-"]
step1operators = []
split = (str) ->
out = []
t = ""
inn = str.split("")
if inn[0] not in operators
t = "+"
for char in inn
if char in operators
out.push t
t = char
else
t += char
out.push t
alert out
out
splitOperator = (str) ->
tmp = str.split("")
out = []
t =
chars: ""
operator: ""
letters: ""
for char, i in tmp
if char in operators
t.operator += char
else if parseInt(char, 10) is NaN or char.charCodeAt(0) >= 97
t.letters += char
else
t.chars += char
t.chars = parseInt t.chars
t
parse = (arr) ->
out = {}
dosteps =
{
step1: []
step2: []
}
for a in arr
console.log a
if not a?
continue
if a.chars == NaN
continue
if a.letters == ""
a.letters = "|"
if (String.fromCharCode a.operator.charCodeAt 1) is "-"
a.chars = -a.chars
if String.fromCharCode a.operator.charCodeAt 0 in step2operators
dosteps.step2.push a
else
dosteps.step1.push a
out[a.letters] = {chars: 0, letters: a.letters.replace "|",""}
for a in dosteps.step2
out[a.letters] = operatorfuncs[a.operator] out[a.letters], a
console.log out[a.letters]
console.log out
operatorfuncs =
"": (a) ->
console.log "nothing"
a
"+": (a,b) ->
console.log "#{a.chars}+#{b.chars}"
a.chars += b.chars
a
"-": (a,b) ->
console.log "#{a.chars}-#{b.chars}"
a.chars -= b.chars
a
makeDir = (arr) ->
out = {}
a = []
a.push (splitOperator s) for s in split "-7+100+9b+7a-9a+8090b"
parse a