teroshdl
Version:
Backend for terosHDL IDE
71 lines (62 loc) • 2.98 kB
JavaScript
function parse_author(dic, desc_root){
const regex_followed = /^\s*[@\\]author\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]author\s.*/gms;
const regex_replace = /^\s*[@\\]author\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'author', dic, desc_root);
}
function parse_version(dic, desc_root){
const regex_followed = /^\s*[@\\]version\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]version\s.*/gms;
const regex_replace = /^\s*[@\\]version\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'version', dic, desc_root);
}
function parse_project(dic, desc_root){
const regex_followed = /^\s*[@\\]project\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]project\s.*/gms;
const regex_replace = /^\s*[@\\]project\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'project', dic, desc_root);
}
function parse_copyright(dic, desc_root){
const regex_followed = /^\s*[@\\]copyright\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]copyright\s.*/gms;
const regex_replace = /^\s*[@\\]copyright\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'copyright', dic, desc_root);
}
function parse_brief(dic, desc_root){
const regex_followed = /^\s*[@\\]brief\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]brief\s.*/gms;
const regex_replace = /^\s*[@\\]brief\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'brief', dic, desc_root);
}
function parse_details(dic, desc_root){
const regex_followed = /^\s*[@\\]details\s.*\n\n/gms;
const regex_not_followed = /^\s*[@\\]details\s.*/gms;
const regex_replace = /^\s*[@\\]details\s/;
parse_doxygen(regex_followed, regex_not_followed, regex_replace, 'details', dic, desc_root);
}
function parse_doxygen(regex_followed, regex_not_followed, regex_replace, name, dic, desc_root){
// look for copyrights regex, it can be followed by another description or not
const copyright_regex_followed = regex_followed;
const copyright_regex_not_followed = regex_not_followed;
let copyright = desc_root.description.match(copyright_regex_followed);
if (copyright === null) {
copyright = desc_root.description.match(copyright_regex_not_followed);
}
if (copyright !== null) {
let stripped_copyright = copyright[0].split(/\n[\s]*\n/gm);
for (let index = 0; index < stripped_copyright.length; index++) {
if (stripped_copyright[index] !== undefined && stripped_copyright[index].match(copyright_regex_not_followed) !== null) {
dic.info[name] = stripped_copyright[index].replace(regex_replace, "");
desc_root.description = desc_root.description.replace(stripped_copyright[index], "");
}
}
}
}
module.exports = {
parse_copyright: parse_copyright,
parse_project: parse_project,
parse_author: parse_author,
parse_version: parse_version,
parse_details: parse_details,
parse_brief: parse_brief,
};