LispReader allows no-ops macros to sneak in certain other forms (namespaced maps, tagged literals and anonymous arguments)

Description

No-op macros are line comments (starting with #! or ;), #_, reader conditional (splicing or not) with no matching feature.
Furthermore once a no-op macro has been read regular whitespace are allowed anew.

Examples:
Namespaced map #foo{:bar :baz}

Tagged literal #inst "2017-04-24T09:11:29.878-00:00"

Anonymous argument: #(do %1)

In addition anonymous arguments implementation is leaky (any %n is accepted as long as n is (-2.0 -1.0] (mapping to %&) and [1.0 Infinity) and any representation can be used (bigdec or bigint or float or integers in any basis).

Environment

None

Assignee

Unassigned

Reporter

Christophe Grand

Labels

Approval

Triaged

Patch

Code

Affects versions

Priority

Minor
Configure