fix: make qmap parseable (but still not a type)
This commit is contained in:
parent
7fa1a10c78
commit
1ca13d9ffd
|
@ -132,7 +132,7 @@ impl Parser {
|
||||||
Self {
|
Self {
|
||||||
class_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*class\s+(?<name>\w+)(?:\s*:\s*public\s+(?<super>\w+)(\s*,(\s*\w+)*)*)?\s*\{(?<body>[\s\S]*?)};"#).unwrap(),
|
class_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*class\s+(?<name>\w+)(?:\s*:\s*public\s+(?<super>\w+)(\s*,(\s*\w+)*)*)?\s*\{(?<body>[\s\S]*?)};"#).unwrap(),
|
||||||
macro_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*(?<hide>QSDOC_HIDE\s)?(?<type>(Q|QML|QSDOC)_\w+)\s*(\(\s*(?<args>.*)\s*\))?;"#).unwrap(),
|
macro_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*(?<hide>QSDOC_HIDE\s)?(?<type>(Q|QML|QSDOC)_\w+)\s*(\(\s*(?<args>.*)\s*\))?;"#).unwrap(),
|
||||||
property_regex: Regex::new(r#"^\s*(?<type>(\w|::|<|>)+\*?)\s+(?<name>\w+)(\s+(MEMBER\s+(?<member>\w+)|READ\s+(?<read>\w+)|WRITE\s+(?<write>\w+)|NOTIFY\s+(?<notify>\w+)|(?<const>CONSTANT)))+\s*$"#).unwrap(),
|
property_regex: Regex::new(r#"^\s*(?<type>(\w|::|, |<|>)+)\*?\s+(?<name>\w+)(\s+(MEMBER\s+(?<member>\w+)|READ\s+(?<read>\w+)|WRITE\s+(?<write>\w+)|NOTIFY\s+(?<notify>\w+)|(?<const>CONSTANT)))+\s*$"#).unwrap(),
|
||||||
fn_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*Q_INVOKABLE\s+(?<type>(\w|::|<|>)+\*?)\s+(?<name>\w+)\((?<params>[\s\S]*?)\);"#).unwrap(),
|
fn_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*Q_INVOKABLE\s+(?<type>(\w|::|<|>)+\*?)\s+(?<name>\w+)\((?<params>[\s\S]*?)\);"#).unwrap(),
|
||||||
signal_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*void\s+(?<name>\w+)\((?<params>[\s\S]*?)\);"#).unwrap(),
|
signal_regex: Regex::new(r#"(?<comment>(\s*\/\/\/.*\n)+)?\s*void\s+(?<name>\w+)\((?<params>[\s\S]*?)\);"#).unwrap(),
|
||||||
fn_param_regex: Regex::new(r#"(const\s+)?(?<type>(\w|::|<|>)+\*?)&?\s+(?<name>\w+)(,|$)"#).unwrap(),
|
fn_param_regex: Regex::new(r#"(const\s+)?(?<type>(\w|::|<|>)+\*?)&?\s+(?<name>\w+)(,|$)"#).unwrap(),
|
||||||
|
@ -246,7 +246,6 @@ impl Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
for invokable in self.fn_regex.captures_iter(body) {
|
for invokable in self.fn_regex.captures_iter(body) {
|
||||||
|
|
||||||
let comment = invokable.name("comment").map(|m| m.as_str());
|
let comment = invokable.name("comment").map(|m| m.as_str());
|
||||||
let type_ = invokable.name("type").unwrap().as_str();
|
let type_ = invokable.name("type").unwrap().as_str();
|
||||||
let name = invokable.name("name").unwrap().as_str();
|
let name = invokable.name("name").unwrap().as_str();
|
||||||
|
|
|
@ -122,10 +122,6 @@ pub fn resolve_types(
|
||||||
list = true;
|
list = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ctype.ends_with('*') {
|
|
||||||
ctype = &ctype[..ctype.len() - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut type_ = qmlparamtype(ctype, typespec);
|
let mut type_ = qmlparamtype(ctype, typespec);
|
||||||
|
|
||||||
if list {
|
if list {
|
||||||
|
|
Loading…
Reference in a new issue