| Title: | Retrieve Code Decorations | 
| Version: | 1.0.2 | 
| Description: | Retrieves code comment decorations for C++ languages of the form '\\ [[xyz]]', which are used for automated wrapping of C++ functions. | 
| License: | MIT + file LICENSE | 
| Depends: | R (≥ 3.3.0) | 
| Imports: | tibble, utils, vctrs (≥ 0.5.0) | 
| Suggests: | covr, testthat | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.3 | 
| URL: | https://github.com/r-lib/decor | 
| BugReports: | https://github.com/r-lib/decor/issues | 
| NeedsCompilation: | yes | 
| Packaged: | 2023-06-30 16:10:40 UTC; romainfrancois | 
| Author: | Davis Vaughan | 
| Maintainer: | Davis Vaughan <davis@posit.co> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-07-01 18:30:02 UTC | 
Decorations in a 'C++' file
Description
Decorations in a 'C++' file
Usage
cpp_decorations(pkg = ".", files = cpp_files(pkg = pkg), is_attribute = FALSE)
Arguments
| pkg | The path to a package's root directory. | 
| files | Paths to 'C++' files. If given, 'pkg' will not be used. | 
| is_attribute | If 'TRUE' the decorations are C++11 attributes, if 'FALSE' they are comments. | 
Value
A tibble with the decorations found, containing fields: - file - The filename for the decoration - line - The line the decoration was found - decoration - The name of the decoration - params - Any parameters given with the decoration - context - The text of the decoration line and all lines until the next decoration (or the end of the file).
Examples
# Setup
f <- tempfile()
writeLines("[[cpp11::register]] int fun(int x = 1) { return x + 1; }", f)
# Retrieve the decorations in the file
cpp_decorations(files = f, is_attribute = TRUE)
# Cleanup
unlink(f)
'C++' files from a package
Description
'C++' files from a package
Usage
cpp_files(pkg = ".")
Arguments
| pkg | The path to a package's root directory. | 
Value
A character vector of 'C++' files found in the package, ordered according to the C locale, for stability across different sessions and platforms.
Examples
# Setup
pkg <- tempfile()
dir.create(file.path(pkg, "src"), recursive = TRUE)
file.create(file.path(pkg, "src", "code.c"))
file.create(file.path(pkg, "src", "code.cpp"))
# List the files, only the C++ file will be listed
cpp_files(pkg)
# Cleanup
unlink(pkg, recursive = TRUE)
Parse a C++ function
Description
Parses a C++ function returning a tibble with the function name and return type and a list column with the arguments of the function.
Usage
parse_cpp_function(context, is_attribute = FALSE)
Arguments
| context | The function context, as obtained by the 'context' column from [cpp_decorations()] | 
| is_attribute | If 'TRUE' the decorations are C++11 attributes, if 'FALSE' they are comments. | 
Value
A tibble with the following fields: - name - The name of the function - return_type - The return type of the function - args - A list column containing a tibble of the functions arguments - type - The type of the argument - name - The name of the argument - default - The default value of the argument (if any).
Examples
# Setup
context <- "int fun(int x) { return x + 1; }"
# Parse the function
parse_cpp_function(context)