Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f13c57e

Browse files
committed
Made tab character to be treated as space
speedup!
1 parent b6b5067 commit f13c57e

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

source/ut_annotations.pkb

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)