beowulf.read
TODO: write docs
gen-cond
(gen-cond p)Generate a cond statement from this simplified parse tree fragment p; returns nil if p does not represent a (MEXPR) cond statement.
gen-cond-clause
(gen-cond-clause p)Generate a cond clause from this simplified parse tree fragment p; returns nil if p does not represent a cond clause.
gen-dot-terminated-list
(gen-dot-terminated-list p)Generate a list, which may be dot-terminated, from this partial parse tree ‘p’. Note that the function acts recursively and progressively decapitates its argument, so that the argument will not always be a valid parse tree.
gen-fn-call
(gen-fn-call p)Generate a function call from this simplified parse tree fragment p; returns nil if p does not represent a (MEXPR) function call. TODO: I’m not yet certain but it appears that args in mexprs are implicitly quoted; this function does not (yet) do that.
generate
(generate p)Generate lisp structure from this parse tree p. It is assumed that p has been simplified.
gsp
macro
(gsp s)Shortcut macro - the internals of read; or, if you like, read-string. Argument s should be a string representation of a valid Lisp expression.
parse
Parse a string presented as argument into a parse tree which can then be operated upon further.
simplify
(simplify p)(simplify p context)Simplify this parse tree p. If p is an instaparse failure object, throw an ex-info, with p as the value of its :failure key.
strip-leading-zeros
(strip-leading-zeros s)(strip-leading-zeros s prefix)read-string interprets strings with leading zeros as octal; strip any from this string s. If what’s left is empty (i.e. there were only zeros, return "0".