%%% %% Module with expressions introduced in version 5 %% %% @author Eric Bouwers %%% module languages/php/version5/Expressions imports languages/php/common/Expressions languages/php/common/Operators exports %%% %% Method is a new magic constant %%% lexical syntax '__METHOD__' -> MagicConstant %%% %% There is an extra static scalar. A constant from within a class %% Object operators are not allowed on the RHS. So only CVar %%% sorts ClassConstant Name context-free syntax String "::" CVar -> ClassConstant { cons("ClassConstant")} String "::" Name -> ClassConstant { cons("ClassConstant")} String -> Name { cons("Name")} %%% %% Both a StaticScalar and a ObjectCVar. %% But scalar is not a Expressions because String is not an Expression %%% ClassConstant -> StaticScalar ClassConstant -> ObjectCVar %%% %% The clone command %%% context-free syntax 'clone' Expr -> Expr {cons("Clone")} 'clone' -> FunctionName {reject} %%% %% The instance of operator %%% context-free syntax Expr 'instanceof' ClassNameReference -> Expr { cons("Instanceof") }