mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
tool/parse_cxx: handle 'alignas' specifier
This commit is contained in:
committed by
Christian Helmuth
parent
868447126f
commit
14bc7b9c6a
@@ -325,7 +325,7 @@ foreach keyword {
|
||||
static_cast reinterpret_cast dynamic_cast
|
||||
using namespace class struct union enum template
|
||||
const inline static virtual friend explicit
|
||||
volatile case default operator new throw
|
||||
volatile case default operator new throw alignas
|
||||
try catch continue sizeof asm override typename constexpr
|
||||
GENODE_RPC GENODE_RPC_THROW
|
||||
GENODE_RPC_INTERFACE GENODE_RPC_INTERFACE_INHERIT
|
||||
@@ -397,6 +397,8 @@ extract assign {=} {content block parenblk tplargs}
|
||||
|
||||
extract attribute {__attribute__\s*<2A>parenblk\d+<2B>} {content block parenblk}
|
||||
|
||||
extract alignas {<7B>keyalignas\d+<2B>\s*<2A>parenblk\d+<2B>} {content block parenblk}
|
||||
|
||||
# extract identifiers
|
||||
extract identifier {([\w_][\w\d_]*)+(?=[^<5E>]*(<28>|$))} {content parenblk block tplargs}
|
||||
|
||||
@@ -432,8 +434,8 @@ extract classdecl {
|
||||
extract structdecl {<7B>keystruct\d+<2B>\s*<2A>identifier\d+<2B>\s*;} {content block}
|
||||
|
||||
# extract classes
|
||||
extract class {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keyclass\d+<2B>\s*<2A>identifier\d+<2B>[^;]*;} {content block}
|
||||
extract struct {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keystruct\d+<2B>\s*<2A>identifier\d+<2B>[^;]*;} {content block}
|
||||
extract class {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keyclass\d+<2B>\s*(<28>alignas\d+<2B>\s*)?<EFBFBD>identifier\d+<2B>[^;]*;} {content block}
|
||||
extract struct {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keystruct\d+<2B>\s*(<28>alignas\d+<2B>\s*)?<EFBFBD>identifier\d+<2B>[^;]*;} {content block}
|
||||
extract union {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keyunion\d+<2B>\s*<2A>identifier\d+<2B>[^;]*;} {content block}
|
||||
extract enum {(<28>mlcomment\d+<2B> *\n[ \t]*)?<3F>keyenum\d+<2B>\s*[^;]*;} {content block}
|
||||
|
||||
@@ -601,7 +603,7 @@ extract identifier {\s*
|
||||
extract vardecl {(<28>(modifier|keyunsigned)\d+<2B>\s*)*(<28>(identifier|keyunsigned)\d+<2B>)((\s|(<28>amper\d+<2B>)|(<28>star\d+<2B>))*(<28>modifier\d+<2B>\s*)*(<28>funcptr\d+<2B>)\s*(:\s*<2A>identifier\d+<2B>)?\s*(<28>assign\d+<2B>[^;]*?)?\s*(<28>comma\d+<2B>)?\s*)+;} {content classblock block}
|
||||
|
||||
# extract variable declarations (type + any number of comma-separated variables + optional tailing comment)
|
||||
extract vardecl {(<28>(modifier|keyunsigned)\d+<2B>\s*)*(<28>(identifier|keyunsigned)\d+<2B>)((\s|(<28>amper\d+<2B>)|(<28>star\d+<2B>))*(<28>(modifier|keyconst)\d+<2B>\s*)*(<28>(identifier|array)\d+<2B>)\s*(:\s*<2A>identifier\d+<2B>)?\s*(<28>assign\d+<2B>[^;]*?)?(<28>block\d+<2B>)?\s*(<28>comma\d+<2B>)?\s*)+;} {content classblock block}
|
||||
extract vardecl {(<28>alignas\d+<2B>\s*)?(<28>(modifier|keyunsigned)\d+<2B>\s*)*(<28>(identifier|keyunsigned)\d+<2B>)((\s|(<28>amper\d+<2B>)|(<28>star\d+<2B>))*(<28>(modifier|keyconst)\d+<2B>\s*)*(<28>(identifier|array)\d+<2B>)\s*(:\s*<2A>identifier\d+<2B>)?\s*(<28>assign\d+<2B>[^;]*?)?(<28>block\d+<2B>)?\s*(<28>comma\d+<2B>)?\s*)+;} {content classblock block}
|
||||
|
||||
# extract commented variable declaration
|
||||
extract commentedvardecl {<7B>vardecl\d+<2B>\s*<2A>m?lcomment\d+<2B>(\s*<2A>lcomment\d<>)*} {content classblock block}
|
||||
|
||||
Reference in New Issue
Block a user