summaryrefslogtreecommitdiff
path: root/lib/sbin/ScheduleParser.pl
diff options
context:
space:
mode:
authorgoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-28 02:59:41 +0000
committergoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>2000-01-28 02:59:41 +0000
commitbd614a6666f00626ab135a210672d1b5be9f1cb8 (patch)
tree6a40e516ccbdbf0f268d9d0885d21225aac26100 /lib/sbin/ScheduleParser.pl
parenta6a1158bcd853931538dafd7bca42784f87c0527 (diff)
Implemented
SCHEDULE AS so a function can be aliased with a different name. Untested. Tom git-svn-id: http://svn.cactuscode.org/flesh/trunk@1326 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/ScheduleParser.pl')
-rw-r--r--lib/sbin/ScheduleParser.pl36
1 files changed, 29 insertions, 7 deletions
diff --git a/lib/sbin/ScheduleParser.pl b/lib/sbin/ScheduleParser.pl
index 8df7e9a2..a3bf3e1f 100644
--- a/lib/sbin/ScheduleParser.pl
+++ b/lib/sbin/ScheduleParser.pl
@@ -74,9 +74,9 @@ sub parse_schedule_ccl
my($buffer);
my($n_blocks);
my($n_statements);
- my($name, $type, $description, $where, $language,
+ my($name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $before_list, $after_list, $while_list);
+ $options, $before_list, $after_list, $while_list);
my($groups);
$buffer = "";
@@ -88,11 +88,12 @@ sub parse_schedule_ccl
if($data[$line_number] =~ m:^\s*schedule\s*:i)
{
($line_number,
- $name, $type, $description, $where, $language,
+ $name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$options,$before_list, $after_list, $while_list) = &ParseScheduleBlock($line_number, @data);
$schedule_db{"\U$thorn\E BLOCK_$n_blocks NAME"} = $name;
+ $schedule_db{"\U$thorn\E BLOCK_$n_blocks AS"} = $as;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks TYPE"} = $type;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks DESCRIPTION"} = $description;
$schedule_db{"\U$thorn\E BLOCK_$n_blocks WHERE"} = $where;
@@ -147,9 +148,9 @@ sub parse_schedule_ccl
sub ParseScheduleBlock
{
my($line_number, @data) = @_;
- my($name, $type, $description, $where, $language,
- $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
- $options, $before_list, $after_list, $while_list);
+ my($name, $as, $type, $description, $where, $language,
+ $mem_groups, $comm_groups, $trigger_groups, $sync_groups,
+ $options, $before_list, $after_list, $while_list);
my(@fields);
my($field);
my(@before_list) = ();
@@ -164,6 +165,7 @@ sub ParseScheduleBlock
my(@current_sched_list) = ();
$where = "";
+ $as = "";
#Parse the first line of the schedule block
@@ -234,6 +236,20 @@ sub ParseScheduleBlock
}
$field+=2;
}
+ elsif($fields[$field] =~ m:^AS$:i)
+ {
+ $field+=2;
+ if($as ne "")
+ {
+ print STDERR "Error parsing schedule block line '$data[$line_number]'\n";
+ print STDERR "Attempt to schedule same block with two names.\n";
+ }
+ else
+ {
+ $as = "$fields[$field]";
+ }
+ $field+=2;
+ }
elsif($fields[$field] =~ m:^BEFORE$:i)
{
if($keyword ne "")
@@ -336,6 +352,12 @@ sub ParseScheduleBlock
}
$line_number++;
+ # If no alias is set, just use the name.
+ if($as eq "")
+ {
+ $as = $name;
+ }
+
# Parse the rest of the block
if($data[$line_number] !~ m:\s*\{\s*:)
@@ -416,7 +438,7 @@ sub ParseScheduleBlock
return ($line_number,
- $name, $type, $description, $where, $language,
+ $name, $as, $type, $description, $where, $language,
$mem_groups, $comm_groups, $trigger_groups, $sync_groups,
$options,$before_list, $after_list, $while_list);