From 34a711b4391f156e14d21e20a22b17e56145ac03 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Thu, 23 May 2019 15:19:44 +0200 Subject: [PATCH] tool/parse_cxx: const var decl, initializers This patch handles a few corner cases that appear in the headers of Genode 19.05, in particular the new client-side block API in 'block_session/connection.h'. --- tool/parse_cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tool/parse_cxx b/tool/parse_cxx index c77bec59b..c83e6cf06 100755 --- a/tool/parse_cxx +++ b/tool/parse_cxx @@ -592,7 +592,7 @@ extract argname { extract argtype {^(§(argmodifier|keyunsigned)\d+°\s*)*(§(identifier|keytypename|varargs|keyunsigned)\d+°)(\s*|(§(amper|and|argmodifier)\d+°)|(§star\d+°))*(§argmodifier\d+°\s*)*(§varargs\d+°)?} argdecl # extract typedefs -extract typedef {(§mlcomment\d+° *\n[ \t]*)?§keytypedef\d+°(\s*§(identifier|keyunsigned)\d+°)+\s*;} {content classblock block} +extract typedef {(§mlcomment\d+° *\n[ \t]*)?§keytypedef\d+°(\s*§(identifier|keyunsigned|keytypename)\d+°)+\s*;} {content classblock block} extract typename {§identifier\d+°(?=;)} typedef extract identifier {(\s*§(identifier|keyunsigned)\d+°){2,}} typedef extract identifier {\s*§keyunsigned\d+°} typedef @@ -601,7 +601,7 @@ extract identifier {\s* extract vardecl {(§(modifier|keyunsigned)\d+°\s*)*(§(identifier|keyunsigned)\d+°)((\s|(§amper\d+°)|(§star\d+°))*(§modifier\d+°\s*)*(§funcptr\d+°)\s*(:\s*§identifier\d+°)?\s*(§assign\d+°[^;]*?)?\s*(§comma\d+°)?\s*)+;} {content classblock block} # extract variable declarations (type + any number of comma-separated variables + optional tailing comment) -extract vardecl {(§(modifier|keyunsigned)\d+°\s*)*(§(identifier|keyunsigned)\d+°)((\s|(§amper\d+°)|(§star\d+°))*(§modifier\d+°\s*)*(§(identifier|array)\d+°)\s*(:\s*§identifier\d+°)?\s*(§assign\d+°[^;]*?)?\s*(§comma\d+°)?\s*)+;} {content classblock block} +extract vardecl {(§(modifier|keyunsigned)\d+°\s*)*(§(identifier|keyunsigned)\d+°)((\s|(§amper\d+°)|(§star\d+°))*(§(modifier|keyconst)\d+°\s*)*(§(identifier|array)\d+°)\s*(:\s*§identifier\d+°)?\s*(§assign\d+°[^;]*?)?(§block\d+°)?\s*(§comma\d+°)?\s*)+;} {content classblock block} # extract commented variable declaration extract commentedvardecl {§vardecl\d+°\s*§m?lcomment\d+°(\s*§lcomment\d°)*} {content classblock block}