Hey! Can I use with with rewrite? Or should I use defsyntax?
You can use with with rewrite.
(m/rewrite (vec "a")
(m/with [%ident \a]
[%ident] 'a))
This wouldn't make sense since I need to pass the patterns to rewrite meander complains that rewrite requires an even number of forms.
(m/with [%ident \a]
(m/rewrite (vec "a")
[%ident] 'a))
This doesn't work right away since clojure just says that it can't resolve %ident. I tried quoting things but haven't figured it out. e.g.
(m/with '[%ident \a]
(m/rewrite (vec "a")
[%ident] 'a))
Unbound reference %identShow: Project-Only All
Hide: Clojure Java REPL Tooling Duplicates (26 frames hidden)
2. Unhandled clojure.lang.Compiler$CompilerException
Error compiling c:/Users/richie/Documents/org/projects/fun-with-meander/meander-fun/src/rgkirch/core/main.clj at (51:3)
#:clojure.error{:phase :macro-syntax-check,
:line 51,
:column 3,
:source
"c:/Users/richie/Documents/org/projects/fun-with-meander/meander-fun/src/rgkirch/core/main.clj",
:symbol m/rewrite}
Compiler.java: 7014 clojure.lang.Compiler/macroexpand1
Compiler.java: 7097 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3892 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 6124 clojure.lang.Compiler$BodyExpr$Parser/parse
Compiler.java: 5471 clojure.lang.Compiler$FnMethod/parse
Compiler.java: 4033 clojure.lang.Compiler$FnExpr/parse
Compiler.java: 7109 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 7178 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 202 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 201 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 831 java.lang.Thread/run
1. Caused by clojure.lang.ExceptionInfo
Unbound reference %ident
{:env {:lvrs #{}, :mvrs #{}, :refs {}, :path [[%ident]]},
:reference %ident,
:syntax-trace [%ident [%ident]]}
epsilon.cljc: 127 meander.match.check.epsilon$check/invokeStatic
epsilon.cljc: 116 meander.match.check.epsilon$check/invoke
epsilon.cljc: 2016 meander.match.epsilon$analyze_find_args$fn__10654/invoke
core.clj: 7327 clojure.core/keep/fn/fn
protocols.clj: 168 clojure.core.protocols/fn
protocols.clj: 124 clojure.core.protocols/fn
protocols.clj: 19 clojure.core.protocols/fn/G
protocols.clj: 31 clojure.core.protocols/seq-reduce
protocols.clj: 75 clojure.core.protocols/fn
protocols.clj: 75 clojure.core.protocols/fn
protocols.clj: 13 clojure.core.protocols/fn/G
core.clj: 6886 clojure.core/transduce
core.clj: 6901 clojure.core/into
core.clj: 6889 clojure.core/into
epsilon.cljc: 2014 meander.match.epsilon$analyze_find_args/invokeStatic
epsilon.cljc: 1991 meander.match.epsilon$analyze_find_args/invoke
epsilon.clj: 17 meander.rewrite.epsilon/analyze-rewrite-args
epsilon.clj: 13 meander.rewrite.epsilon/analyze-rewrite-args
epsilon.clj: 54 meander.rewrite.epsilon/compile-rewrite-args
epsilon.clj: 51 meander.rewrite.epsilon/compile-rewrite-args
epsilon.clj: 199 meander.epsilon/rewrite
epsilon.clj: 185 meander.epsilon/rewrite
RestFn.java: 146 clojure.lang.RestFn/applyTo
Var.java: 705 clojure.lang.Var/applyTo
Compiler.java: 6997 clojure.lang.Compiler/macroexpand1
Compiler.java: 7097 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3892 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 6124 clojure.lang.Compiler$BodyExpr$Parser/parse
Compiler.java: 5471 clojure.lang.Compiler$FnMethod/parse
Compiler.java: 4033 clojure.lang.Compiler$FnExpr/parse
Compiler.java: 7109 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 7178 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 202 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 201 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 831 java.lang.Thread/run
Hmm. I'd expect (m/with [%ident \a] (m/rewrite ... to work since m/with is defined with defsyntax which says that "it defines a function which will be called with unevaluated arguments"
Show: Project-Only All
Hide: Clojure Java REPL Tooling Duplicates (29 frames hidden)
2. Unhandled clojure.lang.Compiler$CompilerException
Error compiling c:/Users/richie/Documents/org/projects/fun-with-meander/meander-fun/src/rgkirch/core/main.clj at (51:1)
#:clojure.error{:phase :compile-syntax-check,
:line 51,
:column 1,
:source
"c:/Users/richie/Documents/org/projects/fun-with-meander/meander-fun/src/rgkirch/core/main.clj"}
Compiler.java: 6812 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3264 clojure.lang.Compiler$VectorExpr/parse
Compiler.java: 6795 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3892 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 6124 clojure.lang.Compiler$BodyExpr$Parser/parse
Compiler.java: 5471 clojure.lang.Compiler$FnMethod/parse
Compiler.java: 4033 clojure.lang.Compiler$FnExpr/parse
Compiler.java: 7109 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 7178 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 202 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 201 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 831 java.lang.Thread/run
1. Caused by java.lang.RuntimeException
Unable to resolve symbol: %ident in this context
Util.java: 221 clojure.lang.Util/runtimeException
Compiler.java: 7418 clojure.lang.Compiler/resolveIn
Compiler.java: 7362 clojure.lang.Compiler/resolve
Compiler.java: 7323 clojure.lang.Compiler/analyzeSymbol
Compiler.java: 6772 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3264 clojure.lang.Compiler$VectorExpr/parse
Compiler.java: 6795 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3892 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 6124 clojure.lang.Compiler$BodyExpr$Parser/parse
Compiler.java: 5471 clojure.lang.Compiler$FnMethod/parse
Compiler.java: 4033 clojure.lang.Compiler$FnExpr/parse
Compiler.java: 7109 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 7178 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 202 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 201 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 831 java.lang.Thread/run
Thanks for the help.