DEV Community

Discussion on: Challenge: Parse simple and complex types from a string

Collapse
 
gmartigny profile image
Guillaume Martigny • Edited

I have no idea of the purpose of this, but I never refuse a fun challenge :D

I use the proximity of your syntaxe with JSON to parse more easily.

function parseSignature (str) {
    const reg = /\(.+\)|( ?-> ?)/g;
    return JSON.parse(`["${str.replace(reg, (match, capture) => capture ? `", "` : match)}"]`);
}

parseSignature("Apple -> (Banana -> Grape) -> Cherry");

runkit.com/gmartigny/5bdc0d1932ccd...

Works with inconsistent white-space but not with deeper nested complex types.

Collapse
 
joelnet profile image
JavaScript Joel

I hate regex. It's so easy to write and so hard to read. I tried to not use regex in my solution, but it was just easier.

Great solution, I believe yours is even easier to read than mine!

Collapse
 
gmartigny profile image
Guillaume Martigny • Edited

I love them for the exact same reasons =D