Pascal Report  165  8.  Expressions  An  expression  denotes a rule of computation that yields a value when  the expression is evaluated, except when the expression activates a  function and that activation is terminated by a goto statement (see  Sections 9.1.3 and 10). The value that is yielded depends upon the  values of the constants, bounds, and variables in the expression and also  upon the operators and functions that the expression invokes.  Expression= SimpleExpression [RelationalOperator SimpleExpressionl  SimpleExpression  = [  Sign] Term! AddingOperator Term  I .  Term  =  Factor! MultiplyingOperator Factor  I .  Factor  =  UnsignedConstant' Boundldentifier' Variable'  SetConstructor  ,  FunctionDesignator'  "not"  Factor'  "C'  Expression  ")" .  UnsignedConstant  =  UnsignedNumber' CharacterString'  Constantldentifier'  "ni 1" .  SetConstructor  = "["  [ElementDescription  !  ElementDescription  I ]  "]" .  ElementDescription  =  OrdinalExpression  [ .... "  OrdinalExpression] .  FunctionDesignator  =  Functionldentifier  [  ActualParameterList] .  RelationalOperator  = "=" , "<>" , "<" , "<=" , ">" , ">=" / "in" .  AddingOperator  =  "+" , "-" ,  "or" .  MultiplyingOperator= "*"'''j''  /  "div" '''mod'' / "and".  An ordinal expression is an expression that possesses an ordinal  type.  A  Boolean  expression  or integer  expression  is  an  ordinal  expression that possesses the type Boolean or Integer, respectively.  OrdinalExpression  =  Expression.  BooleanExpression  =  OrdinalE\pression .  IntegerEJ.pression  =  OrdinalExpression .  A mUltiplying operator in a term has two operands: the part ofthe term  that precedes the operator, and the factor that immediately follows the  operator. An adding operator in a simple expression has two operands:  8.1.  Operands 