%%
%% Statements specific for version 4.
%% This includes the syntax for a class decleration
%% and definition of an old_function.
%%
%% @author Eric Bouwers
module languages/php/version4/Statements
imports
    languages/php/common/Statements
exports

  sorts ClassDecl String ExtendsClause ClassType
  context-free syntax
  %% The real class declaration
    ClassType String ExtendsClause? "{" ClassMember* "}" -> ClassDecl {cons("Class")}

  sorts Param Statement FunctionDecl
  context-free syntax
  %% PHP4 supports old function declerations
   'old_function'     String {Param ","}* "(" Statement* ")" ";" -> FunctionDecl {cons("OldFunctionDecl")}
   'old_function' "&" String {Param ","}* "(" Statement* ")" ";" -> FunctionDecl {cons("OldFunctionDeclRef")}