| 59 | } |
| 60 | |
| 61 | const identifierRegex = function (lang, type) { |
| 62 | if (type === 'function') { |
| 63 | const regexs = { |
| 64 | python: /def ([a-zA-Z_0-9\$\-\u00A2-\uFFFF]+\s*\(?[^)]*\)?):/, // eslint-disable-line no-useless-escape |
| 65 | javascript: /function ([a-zA-Z_0-9\$\-\u00A2-\uFFFF]+\s*\(?[^)]*\)?)/, // eslint-disable-line no-useless-escape |
| 66 | cpp: /[a-z]+\s+([a-zA-Z_0-9\$\-\u00A2-\uFFFF]+\s*\(?[^)]*\)?)/, // eslint-disable-line no-useless-escape |
| 67 | java: /[a-z]+\s+([a-zA-Z_0-9\$\-\u00A2-\uFFFF]+\s*\(?[^)]*\)?)/, // eslint-disable-line no-useless-escape |
| 68 | } |
| 69 | if (lang in regexs) { |
| 70 | return regexs[lang] |
| 71 | } |
| 72 | return /./ |
| 73 | } else if (type === 'properties') { |
| 74 | // eslint-disable-next-line no-useless-escape |
| 75 | return /\.([a-zA-Z_0-9\$\-\u00A2-\uFFFF]+)/g |
| 76 | } |
| 77 | return /./ |
| 78 | } |
| 79 | |
| 80 | const singleLineCommentRegex = function (lang) { |
| 81 | let commentStart |