@@ -7,22 +7,23 @@ create or replace package body ut_annotations as
77
88 gc_annotation_qualifier constant varchar2(1) := '%';
99 c_multiline_comment_pattern constant varchar2(50) := '/\*.*?\*/';
10- c_singleline_comment_pattern constant varchar2(20 ) := ' *--(.*?)$';
11- c_nonannotat_comment_pattern constant varchar2(20 ) := ' *-{2,}\s*[^'||gc_annotation_qualifier||']*?$';
10+ c_singleline_comment_pattern constant varchar2(30 ) := '( |'||chr(09)||') *--(.*?)$'; -- chr(09) is a tab character
11+ c_nonannotat_comment_pattern constant varchar2(30 ) := '( |'||chr(09)||') *-{2,}\s*[^'||gc_annotation_qualifier||']*?$';
1212 c_comment_replacer_patter constant varchar2(50) := '{COMMENT#%N%}';
1313 c_comment_replacer_regex_ptrn constant varchar2(25) := '{COMMENT#(\d+)}';
1414 c_rgexp_identifier constant varchar2(50) := '[a-z][a-z0-9#_$]*';
15- c_annotation_block_pattern constant varchar2(200) := '((.*? {COMMENT#\d+}\s?)+)\s *(procedure|function)\s+(' ||
15+ c_annotation_block_pattern constant varchar2(200) := '(({COMMENT#\d+}'||chr(10)||')+)( |'||chr(09)||') *(procedure|function)\s+(' ||
1616 c_rgexp_identifier || ')';
1717 c_annotation_pattern constant varchar2(50) := gc_annotation_qualifier || c_rgexp_identifier || '(\(.*?\))?';
1818
1919
2020 function delete_multiline_comments(a_source in clob) return clob is
2121 begin
2222 return regexp_replace(
23- srcstr => regexp_replace(
24- srcstr => regexp_replace( srcstr => a_source, pattern => c_multiline_comment_pattern, modifier => 'n')
25- ,pattern => c_nonannotat_comment_pattern, modifier => 'm')
23+ srcstr => regexp_replace(srcstr => regexp_replace(srcstr => a_source
24+ ,pattern => c_multiline_comment_pattern
25+ ,modifier => 'n')
26+ ,pattern => c_nonannotat_comment_pattern, modifier => 'm')
2627 ,pattern => '((procedure|function)\s+' || c_rgexp_identifier || ')[^;]*'
2728 ,replacestr => '\1'
2829 ,modifier => 'mn'
@@ -150,7 +151,7 @@ create or replace package body ut_annotations as
150151 l_proc_name := trim(regexp_substr(srcstr => l_annot_proc_block
151152 ,pattern => c_annotation_block_pattern
152153 ,modifier => 'i'
153- ,subexpression => 4 ));
154+ ,subexpression => 5 ));
154155
155156 -- parse the comment block for the syntactically correct annotations and store them as an array
156157 l_procedure_annotations(l_proc_name) := get_annotations(l_proc_comments, a_comments);
@@ -179,7 +180,7 @@ create or replace package body ut_annotations as
179180 ,occurrence => 1
180181 ,position => l_comment_pos
181182 ,modifier => 'm'
182- ,subexpression => 1 ));
183+ ,subexpression => 2 ));
183184
184185 l_comment_replacer := replace(c_comment_replacer_patter, '%N%', l_comments.count);
185186
0 commit comments