S-expressions: Difference between revisions
m
→Functional JavaScript
(→{{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(▼
)[0].map(▼
fmapTree(showAtom)▼
);
};▼
return 0 < unparsedTokens.length ? (
`Unparsed residue: ${JSON.stringify(unparsedTokens)}`
▲ };
const showAtom = x =>
|