[PHP-DEV] CVS update: php3 From: zeev (php-dev <email protected>)
Date: 05/30/98

Date: Saturday May 30, 1998 @ 14:01
Author: zeev

Update of /repository/php3
In directory asf:/tmp/cvs-serv7345

Modified Files:
        language-parser.y
Log Message:
Support signed scalars in static assignments and function defaults

Index: php3/language-parser.y
diff -c php3/language-parser.y:1.155 php3/language-parser.y:1.156
*** php3/language-parser.y:1.155 Fri May 22 15:18:19 1998
--- php3/language-parser.y Sat May 30 14:01:02 1998
***************
*** 31,37 ****
  */
  
  
! /* $Id: language-parser.y,v 1.155 1998/05/22 19:18:19 shane Exp $ */
  
  
  /*
--- 31,37 ----
  */
  
  
! /* $Id: language-parser.y,v 1.156 1998/05/30 18:01:02 zeev Exp $ */
  
  
  /*
***************
*** 392,402 ****
                  '$' varname_scalar { get_function_parameter(&$2, BYREF_NONE, NULL _INLINE_TLS); }
          | '&' '$' varname_scalar { get_function_parameter(&$3, BYREF_FORCE, NULL _INLINE_TLS); }
          | PHP_CONST '$' varname_scalar { get_function_parameter(&$3, BYREF_ALLOW, NULL _INLINE_TLS); }
! | '$' varname_scalar '=' scalar { get_function_parameter(&$2, BYREF_NONE, &$4 _INLINE_TLS); }
          | non_empty_parameter_list ',' '$' varname_scalar { get_function_parameter(&$4, BYREF_NONE, NULL _INLINE_TLS); }
          | non_empty_parameter_list ',' '&' '$' varname_scalar { get_function_parameter(&$5, BYREF_FORCE, NULL _INLINE_TLS); }
          | non_empty_parameter_list ',' PHP_CONST '$' varname_scalar { get_function_parameter(&$5, BYREF_ALLOW, NULL _INLINE_TLS); }
! | non_empty_parameter_list ',' '$' varname_scalar '=' scalar { get_function_parameter(&$4, BYREF_NONE, &$6 _INLINE_TLS); }
  ;
  
  
--- 392,402 ----
                  '$' varname_scalar { get_function_parameter(&$2, BYREF_NONE, NULL _INLINE_TLS); }
          | '&' '$' varname_scalar { get_function_parameter(&$3, BYREF_FORCE, NULL _INLINE_TLS); }
          | PHP_CONST '$' varname_scalar { get_function_parameter(&$3, BYREF_ALLOW, NULL _INLINE_TLS); }
! | '$' varname_scalar '=' signed_scalar { get_function_parameter(&$2, BYREF_NONE, &$4 _INLINE_TLS); }
          | non_empty_parameter_list ',' '$' varname_scalar { get_function_parameter(&$4, BYREF_NONE, NULL _INLINE_TLS); }
          | non_empty_parameter_list ',' '&' '$' varname_scalar { get_function_parameter(&$5, BYREF_FORCE, NULL _INLINE_TLS); }
          | non_empty_parameter_list ',' PHP_CONST '$' varname_scalar { get_function_parameter(&$5, BYREF_ALLOW, NULL _INLINE_TLS); }
! | non_empty_parameter_list ',' '$' varname_scalar '=' signed_scalar { get_function_parameter(&$4, BYREF_NONE, &$6 _INLINE_TLS); }
  ;
  
  
***************
*** 431,437 ****
  
  
  unambiguous_static_assignment:
! scalar { if (GLOBAL(Execute)) $$ = $1; }
          | '(' expr ')' { if (GLOBAL(Execute)) $$ = $2; }
  ;
  
--- 431,437 ----
  
  
  unambiguous_static_assignment:
! signed_scalar { if (GLOBAL(Execute)) $$ = $1; }
          | '(' expr ')' { if (GLOBAL(Execute)) $$ = $2; }
  ;
  
***************
*** 553,558 ****
--- 553,564 ----
          | STRING { if (GLOBAL(Execute)) { $$ = $1; COPY_STRING($$); php3_error(E_NOTICE,"'%s' is not a valid constant - assumed to be \"%s\"",$1.value.str.val,$1.value.str.val); } }
          | PHP_LINE { if (GLOBAL(Execute)) { $$ = $1; } }
          | PHP_FILE { if (GLOBAL(Execute)) { $$ = $1; COPY_STRING($$); } }
+ ;
+
+ signed_scalar:
+ scalar { if (GLOBAL(Execute)) $$ = $1; }
+ | '+' signed_scalar { if (GLOBAL(Execute)) $$ = $2; }
+ | '-' signed_scalar { if (GLOBAL(Execute)) { pval tmp; tmp.value.lval=0; tmp.type=IS_LONG; sub_function(&$$,&tmp,&$2 _INLINE_TLS); } }
  ;
  
  varname_scalar: