next up previous
Next: Array access Up: Expressions Previous: Field access

Method invocation

Method invocation[52]:
RULE: Expression ::= MethodName '(' Arguments ')' COMPUTE
  ListContext(Expression,,Arguments);
  Indication(MethodName.Key);
END;

RULE: Expression ::= 'super' '.' MethodIdUse '(' Arguments ')' COMPUTE
  ListContext(Expression,,Arguments);
  Indication(MethodIdUse.Key);
END;

RULE: Expression ::= Expression '.' MethodIdUse '(' Arguments ')' COMPUTE
  ListContext(Expression[1],,Arguments);
  Indication(MethodIdUse.Key);
END;

SYMBOL Arguments INHERITS OpndExprListRoot END;
SYMBOL Argument  INHERITS OpndExprListElem END;

RULE: Argument ::= Expression COMPUTE
  TransferContext(Argument,Expression);
END;

TREE SYMBOL ExpressionStatement INHERITS ExpressionSymbol END;

RULE: ExpressionStatement ::= 'super' '(' Arguments ')' ';' COMPUTE
  ListContext(ExpressionStatement,,Arguments);
  Indication(INCLUDING TypeDeclaration.SuperType);
END;

RULE: ExpressionStatement ::= 'this' '(' Arguments ')' ';' COMPUTE
  ListContext(ExpressionStatement,,Arguments);
  Indication(INCLUDING TypeDeclaration.Type);
  IF(AND(NOT(BadIndication),BadOperator),
    message(ERROR,"Invalid constructor call",0,COORDREF));
END;
This macro is invoked in definition 45.



2008-09-11