Ab (N_Short_Circuit, N_Subexpr,
(Sy (Left_Opnd, Node_Id),
Sy (Right_Opnd, Node_Id),
- Sm (Actions, List_Id)));
+ Sy (Actions, List_Id, Default_No_List)));
Cc (N_And_Then, N_Short_Circuit);
Cc (N_Or_Else, N_Short_Circuit);
Sm (Target, Node_Id)));
Cc (N_Case_Expression_Alternative, Node_Kind,
- (Sm (Actions, List_Id),
- Sy (Discrete_Choices, List_Id),
+ (Sy (Discrete_Choices, List_Id),
Sy (Expression, Node_Id, Default_Empty),
+ Sy (Actions, List_Id, Default_No_List),
Sm (Has_SP_Choice, Flag)));
Cc (N_Case_Statement_Alternative, Node_Kind,
-- Check that syntactic fields precede semantic fields. Note that this
-- check is happening before we compute inherited fields.
- -- Exempt Actions from this rule, for now.
declare
Semantic_Seen : Boolean := False;
raise Illegal with
"syntactic fields must precede semantic ones " & Image (T);
end if;
-
else
- if Fields (J).F /= Actions then
- Semantic_Seen := True;
- end if;
+ Semantic_Seen := True;
end if;
end loop;
end;
Node_Field_Types_Used, Entity_Field_Types_Used : Type_Set;
Setter_Needs_Parent : Field_Set :=
- (Actions | Expression | Then_Actions | Else_Actions => True,
+ (Expression | Then_Actions | Else_Actions => True,
others => False);
-- Set of fields where the setter should set the Parent. True for
-- syntactic fields of type Node_Id and List_Id, but with some
end if;
end loop;
- -- The following fields violate this rule. We might want to
- -- simplify by getting rid of these cases, but we allow them
- -- for now. At least, we don't want to add any new cases of
- -- syntactic/semantic mismatch.
+ -- ???The following fields violate this rule. We might want
+ -- to simplify by getting rid of these cases, but we allow
+ -- them for now. At least, we don't want to add any new
+ -- cases of syntactic/semantic mismatch.
+ -- ???Just one case left.
- if F in Actions | Expression then
+ if F in Expression then
pragma Assert (Syntactic_Seen and Semantic_Seen);
else