You might also want to look at the codetools package, for example the showTree function " Prints a Lisp-style representation of R expression."
> library(codetools) > showTree(quote(x %*% x)) (%*% x x) > showTree(quote(a+b)) (+ a b) > showTree(quote(y ~ a+b)) (~ y (+ a b)) On Fri, Sep 6, 2019 at 2:30 PM Bert Gunter <bgunter.4...@gmail.com> wrote: > > The following may be of use (it gives the parse tree of the text): > > > z <- as.list(parse(text = "function(x)x %*% x")) > > z[[1]] > function(x) x %*% x > > z[[c(1,1)]] > `function` > > z[[c(1,2)]] > $x > > z[[c(1,3)]] > x %*% x > > z[[c(1,3,1)]] > `%*%` > > z[[c(1,3,2)]] > x > > z[[c(1,3,3)]] > x > > > Bert Gunter > > > > On Fri, Sep 6, 2019 at 10:14 AM Wang Jiefei <szwj...@gmail.com> wrote: > > > If you are looking for an R code parser, I think the `parse` and `eval` > > function might be a good start point. See the example below. > > > > > parse(text="function(x)message(x)") > > expression(function(x)message(x)) > > > eval(parse(text="function(x)message(x)")) > > function(x)message(x) > > > > Best, > > Jiefei > > > > On Fri, Sep 6, 2019 at 12:55 PM Golden, Shelby <gold...@njhealth.org> > > wrote: > > > >> Hello Bert, > >> > >> Thank you for the reply and your clarifications. Yes, it might be helpful > >> to look into R’s formal grammar to see how “function” parses input to > >> delegate correct syntax. Is that accessible online? > >> > >> Thank you, > >> Shelby > >> > >> > >> From: Bert Gunter <bgunter.4...@gmail.com> > >> Date: Friday, September 6, 2019 at 10:44 AM > >> To: "Golden, Shelby" <gold...@njhealth.org> > >> Cc: "r-help@R-project.org" <r-help@r-project.org>, "Gillenwater, Lucas" < > >> gillenwat...@njhealth.org> > >> Subject: Re: [R] [R-devel] Source Code for function > >> > >> 1. This is a plain text list; all html is stripped. So there is no red > >> highlighting. > >> > >> 2. There is no "source code" for "function" -- it is a reserved keyword. > >> Or are you looking for R's formal grammar -- e.g. how it parses input to > >> determine correct syntax? > >> > >> > >> > >> Bert Gunter > >> > >> "The trouble with having an open mind is that people keep coming along > >> and sticking things into it." > >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > >> > >> > >> On Fri, Sep 6, 2019 at 8:51 AM Golden, Shelby <gold...@njhealth.org > >> <mailto:gold...@njhealth.org>> wrote: > >> Hi all, > >> > >> I have been attempting to access the source code for the keyword > >> “function” to better understand how it assigns and stores logical inputs, > >> like in the subset() [base] function. Does anyone know how I can access the > >> source code for this? > >> > >> For example, if I have > >> norm <- function(x){ > >> sqrt(x%*%x)) > >> } > >> I am looking for the source code for the “function” portion, highlighted > >> in red. > >> > >> Thank you for your time and assistance, > >> Shelby Golden > >> Lab Researcher Technician > >> Dr. Russell Bowler’s Lab > >> Department of Medicine > >> National Jewish Health in Denver, CO > >> Phone: (303) 270-2598 > >> > >> NOTICE: This email message is for the sole use of the intended > >> recipient(s) and may contain confidential and privileged information. Any > >> unauthorized review, use, disclosure or distribution is prohibited. If you > >> are not the intended recipient, please contact the sender by reply email > >> and destroy all copies of the original message. > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help@r-project.org<mailto:R-help@r-project.org> mailing list -- To > >> UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help< > >> http://mx2.njhealth.org:32224/?dmVyPTEuMDAxJiZmMWRiYmMxZjFmNmI5ZDBkMz01RDcyOEQwN18yMjk2OF8zOTk2XzEmJjljNzlmMDA4YWRmZTZjMz0xMjMzJiZ1cmw9aHR0cHMlM0ElMkYlMkZzdGF0JTJFZXRoeiUyRWNoJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGci1oZWxw > >> > > >> PLEASE do read the posting guide > >> http://www.R-project.org/posting-guide.html< > >> http://mx2.njhealth.org:32224/?dmVyPTEuMDAxJiZlMTkwYmMwMzFlNjk4ZTAzNz01RDcyOEQwN18yMjk2OF8zOTk2XzEmJmFkYTkxMWRkMWRhZTFkNz0xMjMzJiZ1cmw9aHR0cCUzQSUyRiUyRnd3dyUyRVItcHJvamVjdCUyRW9yZyUyRnBvc3RpbmctZ3VpZGUlMkVodG1s > >> > > >> and provide commented, minimal, self-contained, reproducible code. > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guide > >> http://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > >> > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.