Is this allowed?
input w; input [8:0]y; output reg [8:0]x; always@(w) begin //x[0] or A is never on in any next state as
There is no need using assign inside a procedural block (In this case Always)
Assign is a continuous assignment, and it has to go outside a procedural block.