aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/Make-lang.in
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-05-18 14:05:25 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:46:26 +0100
commit663c4102a8ad43ec409e04d5ab834d38f161bdb5 (patch)
tree835bd65e5e47a613f711ac16595a05bc5ae3ff95 /gcc/rust/Make-lang.in
parent00ec3eda2a59af0acb8fad740eef78a654335043 (diff)
downloadgcc-663c4102a8ad43ec409e04d5ab834d38f161bdb5.zip
gcc-663c4102a8ad43ec409e04d5ab834d38f161bdb5.tar.gz
gcc-663c4102a8ad43ec409e04d5ab834d38f161bdb5.tar.bz2
gccrs: expand: Add prc macro expander and registration
Add containers and functions to the hir-map in order to register and lookup all three kind of procedural macros. Add a first draft for attribute procedural macro expansion. This expander still lack proper error handling as well as polishing. gcc/rust/ChangeLog: * util/rust-hir-map.cc (Mappings::insert_bang_proc_macro): Add a function to insert a new bang proc macro. (Mappings::lookup_bang_proc_macro): Add a function to lookup a bang procedural macro. (Mappings::insert_derive_proc_macro): Add a function to insert a derive procedural macro. (Mappings::lookup_derive_proc_macro): Add a function to lookup a derive procedural macro. (Mappings::insert_attribute_proc_macro): Add a function to insert an attribute procedural macro. (Mappings::lookup_attribute_proc_macro): Add a function to lookup an attribute procedural macro. * util/rust-hir-map.h: Add function prototypes. * expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute): Implement expansion of outer attributes. (ExpandVisitor::expand_inner_attribute): Add call for inner attribute expansion. * expand/rust-expand-visitor.h: Add new procedural macro expander attribute. * expand/rust-proc-macro.cc (load_macros_array): Add a function to load the proc macro array from a given shared object. (load_macros): Add a function to retrieve procedural macro vector from a given shared object. (ProcMacroExpander::import_proc_macros): Add a function to load procedural macros from a given extern crate name. * expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Add new proc-macro file. (class ProcMacroExpander): Add new ProcMacroExpander class. * rust-session-manager.cc (Session::expansion): Create new macro expander and feed it to the expand visitor. * util/rust-attributes.cc: Add macro_export builtin attribute. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/Make-lang.in')
0 files changed, 0 insertions, 0 deletions