summaryrefslogtreecommitdiff
path: root/lib/sbin/ScheduleParser.pl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sbin/ScheduleParser.pl')
-rw-r--r--lib/sbin/ScheduleParser.pl35
1 files changed, 30 insertions, 5 deletions
diff --git a/lib/sbin/ScheduleParser.pl b/lib/sbin/ScheduleParser.pl
index 9fdff5f5..7670b19d 100644
--- a/lib/sbin/ScheduleParser.pl
+++ b/lib/sbin/ScheduleParser.pl
@@ -113,7 +113,8 @@ sub parse_schedule_ccl
my($n_statements);
my($name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $options, $before_list, $after_list, $while_list, $if_list);
+ $options, $tags, $before_list, $after_list,
+ $writes_list, $reads_list, $while_list, $if_list);
my($groups);
$buffer = "";
@@ -127,8 +128,9 @@ sub parse_schedule_ccl
($line_number,
$name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $options,$before_list, $after_list, $while_list, $if_list)
- = &ParseScheduleBlock($thorn,$line_number, @data);
+ $options, $tags, $before_list, $after_list,
+ $writes_list, $reads_list, $while_list, $if_list) =
+ &ParseScheduleBlock($thorn,$line_number, @data);
$schedule_db{"\U$thorn\E BLOCK_$n_blocks NAME"} = $name;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks AS"} = $as;
@@ -141,8 +143,11 @@ sub parse_schedule_ccl
$schedule_db{"\U$thorn\E BLOCK_$n_blocks TRIG"} = $trigger_groups;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks SYNC"} = $sync_groups;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks OPTIONS"} = $options;
+ $schedule_db{"\U$thorn\E BLOCK_$n_blocks TAGS"} = $tags;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks BEFORE"} = $before_list;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks AFTER"} = $after_list;
+ $schedule_db{"\U$thorn\E BLOCK_$n_blocks WRITES"} = $writes_list;
+ $schedule_db{"\U$thorn\E BLOCK_$n_blocks READS"} = $reads_list;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks WHILE"} = $while_list;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks IF"} = $if_list;
@@ -196,11 +201,14 @@ sub ParseScheduleBlock
my($thorn,$line_number, @data) = @_;
my($name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $options, $before_list, $after_list, $while_list, $if_list);
+ $options, $tags, $before_list, $after_list,
+ $writes_list, $reads_list, $while_list, $if_list);
my(@fields);
my($field);
my(@before_list) = ();
my(@after_list) = ();
+ my(@writes_list) = ();
+ my(@reads_list) = ();
my(@while_list) = ();
my(@if_list) = ();
my(@mem_groups) = ();
@@ -208,6 +216,7 @@ sub ParseScheduleBlock
my(@trigger_groups) = ();
my(@sync_groups) = ();
my(@options) = ();
+ my(@tags) = ();
my($keyword) = "";
my(@current_sched_list) = ();
@@ -467,10 +476,22 @@ sub ParseScheduleBlock
{
push(@sync_groups, split(/\s+|\s*,\s*/, $1));
}
+ elsif($data[$line_number] =~ m/^\s*WRITES\s*:\s*(.*)$/i)
+ {
+ push(@writes_list, split(/\s+|\s*,\s*/, $1));
+ }
+ elsif($data[$line_number] =~ m/^\s*READS\s*:\s*(.*)$/i)
+ {
+ push(@reads_list, split(/\s+|\s*,\s*/, $1));
+ }
elsif($data[$line_number] =~ m/^\s*OPTI[^:]*:\s*(.*)$/i)
{
push(@options, split(/\s+|\s*,\s*/, $1));
}
+ elsif($data[$line_number] =~ m/^\s*TAGS[^:]*:\s*(.*)$/i)
+ {
+ push(@tags, $1);
+ }
elsif($data[$line_number] =~ m/^\s*LANG[^:]*:\s*(.*)$/i)
{
if($language ne "")
@@ -518,8 +539,11 @@ sub ParseScheduleBlock
$trigger_groups = join(",", @trigger_groups);
$sync_groups = join(",", @sync_groups);
$options = join(",", @options);
+ $tags = join(" ", @tags);
$before_list = join(",", @before_list);
$after_list = join(",", @after_list);
+ $writes_list = join(",", @writes_list);
+ $reads_list = join(",", @reads_list);
$while_list = join(",", @while_list);
$if_list = join(",", @if_list);
@@ -527,7 +551,8 @@ sub ParseScheduleBlock
return ($line_number,
$name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $options,$before_list, $after_list, $while_list, $if_list);
+ $options, $tags, $before_list, $after_list,
+ $writes_list, $reads_list, $while_list, $if_list);
}