In reply to jaswanth_b:
The problem with your code is you have a procedural assignment statement outside of a procedural block. To fix that, make it a variable declaration initialization.
seq_item item; = seq_item :: typeid :: create(item); // created when sequence gets constructed
task body;
start_item(item);
finish_item(item);
// ...
endtask: run