celesto
Secure and persistent computer for AI agents
Deterministically parses SAS programs into a faithful abstract syntax tree and compiles DATA steps into tidyverse R code. Unsupported language features fail loudly with classed conditions.
Developer toolsGitHub @kaipingyangOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Run SAS programs on an R engine (deterministic SAS front-end, tidyverse/DuckDB back-end)
Translation pending
Loading the full README.
Read the full README ↗Run SAS® programs on an R engine.
sasonr parses SAS source code (DATA step, macro language, PROC SQL and a growing set of procedures) into a faithful abstract syntax tree with a hand-written lexer, recursive-descent parser and Pratt expression parser, then executes it in R: DATA steps are compiled into tidyverse code, PROC SQL runs on DuckDB. The goal is end-to-end results identical to SAS 9.4.
Three ways to use it:
sas_translate() produces R code
without any language model, and the result is verified against SAS output.Design rules:
sasonr_unsupported condition with the SAS line
number instead of guessing.Status: early development, not on CRAN.
# pak::pak("kaipingyang/sasonr")
library(sasonr)
res <- sas_run("data a; do i = 1 to 3; x = i**2; output; end; run;")
sas_translate("data b; set a; if x > 1; run;") # show generated R code
SAS is a registered trademark of SAS Institute Inc. This project is not affiliated with or endorsed by SAS Institute Inc.