class
     SUM

inherit
     AGGREGATE
           redefine
                 post_action
           end

     POLYNOM

create
     make

feature

     construct_name: STRING is
           once
                 Result := "SUM"
           end
     
feature {NONE}

     Separator: STRING is "+"
     
feature

     production: LINKED_LIST [CONSTRUCT] is
           local
                 base: DIFF
           once
                 create Result.make
                 Result.forth
                 create base.make
                 put (base)
           end

     post_action is
           local
                 int_value: INTEGER
           do
                 if not no_components then
                       from
                             child_start
                       until
                             child_after
                       loop
                             child.post_action
                             int_value := int_value + info.child_value
                             child_forth
                       end
                       info.set_child_value (int_value)
                 end
           end
     
end -- class SUM