Jump to content

S-expressions: Difference between revisions

m
(→‎{{header|JavaScript}}: Added a functionally composed variant, generating a parse tree diagram.)
Line 3,618:
// parseExpr [String] -> ([Tree Expr], [String])
const parseExpr = tokens => {
// A tuple of (parsed trees, residual tokens)
// derived from a list of tokens.
const p = ([, tkns]) =>
// Tokens depleted or closing bracket reached ?
Line 3,721 ⟶ 3,723:
].join("\n");
 
const [forest, unparsedTokens] = parseExpr(
return drawForest(
parseExprtokenized(expr)
tokenized(expr)
)[0].map(
fmapTree(showAtom)
)
);
};
 
return 0 < unparsedTokens.length ? (
`Unparsed residue: ${JSON.stringify(unparsedTokens)}`
return) : drawForest(
forest.map(fmapTree(showAtom))
)[0].map(;
};
 
const showAtom = x =>
9,655

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.