type Binary_Operator is abstract new Expression with private;
type Unary_Operator is abstract new Expression with private;
type A_Binary_Operator is access all Binary_Operator'Class;
type A_Unary_Operator is access all Unary_Operator'Class;
function Create_Binary_Operator
( | token | : not null A_Token ) return A_Binary_Operator; |
function Get_Precedence
( | this | : not null access Binary_Operator'Class ) return Positive; |
procedure Set_Operands
( | this | : not null access Binary_Operator'Class; |
left, right | : in out A_Expression ); |
function Is_Binary
( | tokenType | : Token_Type ) return Boolean; |
function Create_Unary_Operator
( | token | : not null A_Token ) return A_Unary_Operator; |
procedure Set_Operand
( | this | : not null access Unary_Operator'Class; |
right | : in out A_Expression ); |
function Is_Unary
( | tokenType | : Token_Type ) return Boolean; |