%%
%% All keywords belonging to both PHP4 and PHP5
%%
%% @author Eric Bouwers
module languages/php/common/Keywords

exports
  sorts Keyword

  lexical syntax
      '__CLASS__'        -> Keyword
      '__FILE__'         -> Keyword
      '__FUNCTION__'     -> Keyword
      '__LINE__'         -> Keyword
      'and'              -> Keyword
      'array'            -> Keyword
      'as'               -> Keyword
      'break'            -> Keyword
      'case'             -> Keyword
      'class'            -> Keyword
      'continue'         -> Keyword
      'declare'          -> Keyword
      'default'          -> Keyword
      'die'              -> Keyword
      'do'               -> Keyword
      'echo'             -> Keyword
      'else'             -> Keyword
      'elseif'           -> Keyword
      'empty'            -> Keyword
      'enddeclare'       -> Keyword
      'endfor'           -> Keyword
      'endforeach'       -> Keyword
      'endif'            -> Keyword
      'endswitch'        -> Keyword
      'endwhile'         -> Keyword
      'eval'             -> Keyword
      'exit'             -> Keyword
      'extends'          -> Keyword
      'false'            -> Keyword
      'for'              -> Keyword
      'foreach'          -> Keyword
      'function'         -> Keyword
      'global'           -> Keyword
      'if'               -> Keyword
      'include'          -> Keyword
      'include_once'     -> Keyword
      'isset'            -> Keyword
      'list'             -> Keyword
      'new'              -> Keyword
      'null'             -> Keyword
      'or'               -> Keyword
      'parent'           -> Keyword
      'print'            -> Keyword
      'require'          -> Keyword
      'require_once'     -> Keyword
      'return'           -> Keyword
      'static'           -> Keyword
      'switch'           -> Keyword
      'this'             -> Keyword
      'true'             -> Keyword
      'unset'            -> Keyword
      'use'              -> Keyword
      'var'              -> Keyword
      'while'            -> Keyword
      'xor'              -> Keyword

  lexical restrictions
    '__CLASS__'     |
    '__FILE__'      |
    '__FUNCTION__'  |
    '__LINE__'      |
    'and'           |
    'array'         |
    'as'            |
    'break'         |
    'case'          |
    'class'         |
    'continue'      |
    'declare'       |
    'default'       |
    'die'           |
    'do'            |
    'echo'          |
    'else'          |
    'elseif'        |
    'empty'         |
    'enddeclare'    |
    'endfor'        |
    'endforeach'    |
    'endif'         |
    'endswitch'     |
    'endwhile'      |
    'eval'          |
    'exit'          |
    'extends'       |
    'false'         |
    'for'           |
    'foreach'       |
    'function'      |
    'global'        |
    'if'            |
    'include'       |
    'include_once'  |
    'isset'         |
    'list'          |
    'new'           |
    'null'          |
    'or'            |
    'parent'        |
    'print'         |
    'require'       |
    'require_once'  |
    'return'        |
    'static'        |
    'switch'        |
    'this'          |
    'true'          |
    'unset'         |
    'use'           |
    'var'           |
    'while'         |
    'xor'           -/- [a-zA-Z0-9\_]