Hello everyone,

I'm trying to do refactoring operations in Racket. 

I'm using *syntax-parse* to match the refactoring rules, but I have a 
problem with the use of *#:literals*. It works for the expanded program, 
but it does not work for the non expanded program.

The non expanded program works just fine in a normal file, however it does 
not work when I feed the argument from other programs. While the expanded 
program works when is fed by other programs.

I get the expanded program from the function 
*"drracket:eval:expand-program"* and the non expanded program from 
*"drracket:eval:traverse-program/multiple"*.

I have a plugin that shows this problem, you can find it in this link: 
https://github.com/RafaelReia/RefactoringTool.git I already have more 
refactoring operations but this plugin is simplified to show the error.

There are 2 refactorings available, one (refactoring If) uses 
drracket:eval:expand-program. It uses #:literals and it works.

the other (refactoring if V2) uses drracket:eval:traverse-program/multiple. 
When it uses #:literals it raises an error, but if I change it to 
#:datum-literals it works.

To use the refactoring tool it is necessary to select the code to be 
refactored (e.g. (if (< 1 2) #f #t) ), right click it and then select the 
refactoring in the Refactoring Test Plugin.

It would be great if someone could take a look at the plugin and explain 
the problem.

Thanks,

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/131ad948-b2ad-4052-9e86-89206dc6b066%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to