php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login

Patch language_scanner_and_tokenizer_test for Scripting Engine problem Bug #51674

Patch version 2010-04-27 12:14 UTC

Return to Bug #51674 | Download this patch
Patch Revisions:

Developer: cogo@starzinger.net

Index: ext/tokenizer/tests/token_get_all_variation9.phpt
===================================================================
--- ext/tokenizer/tests/token_get_all_variation9.phpt	(revision 298650)
+++ ext/tokenizer/tests/token_get_all_variation9.phpt	(working copy)
@@ -10,15 +10,26 @@
 /*
  * Passing 'source' argument with different style of comments
  */
-//  '//', '/* */', '#' - T_COMMENT(365)
-// '/** */' - T_DOC_COMMENT(366)
+//  '//', '/* */', '#' - T_COMMENT(366)
+// '/** */' - T_DOC_COMMENT(367)
+// '/**#@+ */' - T_DOC_COMMENT(367) - Start of a phpdoc template
+// '/**#@-*/' - T_DOC_COMMENT(367) - End of a phpdoc template
 
 
 echo "*** Testing token_get_all() : 'source' string with different comments ***\n";
 
-// types of comments: '//', '/* */', '#' & /** */
+// types of comments: '//', '/* */', '#', /** */, /**#@+ */ & /**#@-*/
 
 $source = '<?php 
+/**#@+
+ * Integer value
+ *
+ * @var int
+ */
+$a = 0;
+$b = 0;
+/**#@-*/
+
 /** Performing addition operation on given values :
   * a, b
   */
@@ -28,8 +39,8 @@
 $b = 20;
 $c = true; // bool value
 
-/* 
- * Performing operation on $a,$b 
+/*
+ * Performing operation on $a,$b
  * display result
  */
 $c = $a + $b;
@@ -43,7 +54,7 @@
 ?>
 --EXPECTF--
 *** Testing token_get_all() : 'source' string with different comments ***
-array(51) {
+array(69) {
   [0]=>
   array(3) {
     [0]=>
@@ -68,13 +79,156 @@
     [0]=>
     int(367)
     [1]=>
+    string(42) "/**#@+
+ * Integer value
+ *
+ * @var int
+ */"
+    [2]=>
+    int(2)
+  }
+  [3]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) "
+"
+    [2]=>
+    int(6)
+  }
+  [4]=>
+  array(3) {
+    [0]=>
+    int(309)
+    [1]=>
+    string(2) "$a"
+    [2]=>
+    int(7)
+  }
+  [5]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) " "
+    [2]=>
+    int(7)
+  }
+  [6]=>
+  string(1) "="
+  [7]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) " "
+    [2]=>
+    int(7)
+  }
+  [8]=>
+  array(3) {
+    [0]=>
+    int(305)
+    [1]=>
+    string(1) "0"
+    [2]=>
+    int(7)
+  }
+  [9]=>
+  string(1) ";"
+  [10]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) "
+"
+    [2]=>
+    int(7)
+  }
+  [11]=>
+  array(3) {
+    [0]=>
+    int(309)
+    [1]=>
+    string(2) "$b"
+    [2]=>
+    int(8)
+  }
+  [12]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) " "
+    [2]=>
+    int(8)
+  }
+  [13]=>
+  string(1) "="
+  [14]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) " "
+    [2]=>
+    int(8)
+  }
+  [15]=>
+  array(3) {
+    [0]=>
+    int(305)
+    [1]=>
+    string(1) "0"
+    [2]=>
+    int(8)
+  }
+  [16]=>
+  string(1) ";"
+  [17]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(1) "
+"
+    [2]=>
+    int(8)
+  }
+  [18]=>
+  array(3) {
+    [0]=>
+    int(367)
+    [1]=>
+    string(8) "/**#@-*/"
+    [2]=>
+    int(9)
+  }
+  [19]=>
+  array(3) {
+    [0]=>
+    int(371)
+    [1]=>
+    string(2) "
+
+"
+    [2]=>
+    int(9)
+  }
+  [20]=>
+  array(3) {
+    [0]=>
+    int(367)
+    [1]=>
     string(65) "/** Performing addition operation on given values :
   * a, b
   */"
     [2]=>
-    int(2)
+    int(11)
   }
-  [3]=>
+  [21]=>
   array(3) {
     [0]=>
     int(371)
@@ -83,9 +237,9 @@
 
 "
     [2]=>
-    int(4)
+    int(13)
   }
-  [4]=>
+  [22]=>
   array(3) {
     [0]=>
     int(366)
@@ -93,49 +247,49 @@
     string(13) "// int value
 "
     [2]=>
-    int(6)
+    int(15)
   }
-  [5]=>
+  [23]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$a"
     [2]=>
-    int(7)
+    int(16)
   }
-  [6]=>
+  [24]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(7)
+    int(16)
   }
-  [7]=>
+  [25]=>
   string(1) "="
-  [8]=>
+  [26]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(7)
+    int(16)
   }
-  [9]=>
+  [27]=>
   array(3) {
     [0]=>
     int(305)
     [1]=>
     string(2) "10"
     [2]=>
-    int(7)
+    int(16)
   }
-  [10]=>
+  [28]=>
   string(1) ";"
-  [11]=>
+  [29]=>
   array(3) {
     [0]=>
     int(371)
@@ -143,49 +297,49 @@
     string(1) "
 "
     [2]=>
-    int(7)
+    int(16)
   }
-  [12]=>
+  [30]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$b"
     [2]=>
-    int(8)
+    int(17)
   }
-  [13]=>
+  [31]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(8)
+    int(17)
   }
-  [14]=>
+  [32]=>
   string(1) "="
-  [15]=>
+  [33]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(8)
+    int(17)
   }
-  [16]=>
+  [34]=>
   array(3) {
     [0]=>
     int(305)
     [1]=>
     string(2) "20"
     [2]=>
-    int(8)
+    int(17)
   }
-  [17]=>
+  [35]=>
   string(1) ";"
-  [18]=>
+  [36]=>
   array(3) {
     [0]=>
     int(371)
@@ -193,58 +347,58 @@
     string(1) "
 "
     [2]=>
-    int(8)
+    int(17)
   }
-  [19]=>
+  [37]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$c"
     [2]=>
-    int(9)
+    int(18)
   }
-  [20]=>
+  [38]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(9)
+    int(18)
   }
-  [21]=>
+  [39]=>
   string(1) "="
-  [22]=>
+  [40]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(9)
+    int(18)
   }
-  [23]=>
+  [41]=>
   array(3) {
     [0]=>
     int(307)
     [1]=>
     string(4) "true"
     [2]=>
-    int(9)
+    int(18)
   }
-  [24]=>
+  [42]=>
   string(1) ";"
-  [25]=>
+  [43]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(9)
+    int(18)
   }
-  [26]=>
+  [44]=>
   array(3) {
     [0]=>
     int(366)
@@ -252,9 +406,9 @@
     string(14) "// bool value
 "
     [2]=>
-    int(9)
+    int(18)
   }
-  [27]=>
+  [45]=>
   array(3) {
     [0]=>
     int(371)
@@ -262,21 +416,21 @@
     string(1) "
 "
     [2]=>
-    int(10)
+    int(19)
   }
-  [28]=>
+  [46]=>
   array(3) {
     [0]=>
     int(366)
     [1]=>
-    string(59) "/* 
- * Performing operation on $a,$b 
+    string(57) "/*
+ * Performing operation on $a,$b
  * display result
  */"
     [2]=>
-    int(11)
+    int(20)
   }
-  [29]=>
+  [47]=>
   array(3) {
     [0]=>
     int(371)
@@ -284,78 +438,78 @@
     string(1) "
 "
     [2]=>
-    int(14)
+    int(23)
   }
-  [30]=>
+  [48]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$c"
     [2]=>
-    int(15)
+    int(24)
   }
-  [31]=>
+  [49]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(15)
+    int(24)
   }
-  [32]=>
+  [50]=>
   string(1) "="
-  [33]=>
+  [51]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(15)
+    int(24)
   }
-  [34]=>
+  [52]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$a"
     [2]=>
-    int(15)
+    int(24)
   }
-  [35]=>
+  [53]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(15)
+    int(24)
   }
-  [36]=>
+  [54]=>
   string(1) "+"
-  [37]=>
+  [55]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(15)
+    int(24)
   }
-  [38]=>
+  [56]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$b"
     [2]=>
-    int(15)
+    int(24)
   }
-  [39]=>
+  [57]=>
   string(1) ";"
-  [40]=>
+  [58]=>
   array(3) {
     [0]=>
     int(371)
@@ -363,42 +517,42 @@
     string(1) "
 "
     [2]=>
-    int(15)
+    int(24)
   }
-  [41]=>
+  [59]=>
   array(3) {
     [0]=>
     int(307)
     [1]=>
     string(8) "var_dump"
     [2]=>
-    int(16)
+    int(25)
   }
-  [42]=>
+  [60]=>
   string(1) "("
-  [43]=>
+  [61]=>
   array(3) {
     [0]=>
     int(309)
     [1]=>
     string(2) "$c"
     [2]=>
-    int(16)
+    int(25)
   }
-  [44]=>
+  [62]=>
   string(1) ")"
-  [45]=>
+  [63]=>
   string(1) ";"
-  [46]=>
+  [64]=>
   array(3) {
     [0]=>
     int(371)
     [1]=>
     string(1) " "
     [2]=>
-    int(16)
+    int(25)
   }
-  [47]=>
+  [65]=>
   array(3) {
     [0]=>
     int(366)
@@ -406,9 +560,9 @@
     string(20) "# expected: int(30)
 "
     [2]=>
-    int(16)
+    int(25)
   }
-  [48]=>
+  [66]=>
   array(3) {
     [0]=>
     int(371)
@@ -416,9 +570,9 @@
     string(1) "
 "
     [2]=>
-    int(17)
+    int(26)
   }
-  [49]=>
+  [67]=>
   array(3) {
     [0]=>
     int(366)
@@ -426,16 +580,16 @@
     string(17) "# end of program
 "
     [2]=>
-    int(18)
+    int(27)
   }
-  [50]=>
+  [68]=>
   array(3) {
     [0]=>
     int(370)
     [1]=>
     string(2) "?>"
     [2]=>
-    int(19)
+    int(28)
   }
 }
 Done
Index: Zend/zend_language_scanner.l
===================================================================
--- Zend/zend_language_scanner.l	(revision 298650)
+++ Zend/zend_language_scanner.l	(working copy)
@@ -1710,7 +1710,11 @@
 	return T_COMMENT;
 }
 
-<ST_IN_SCRIPTING>"/*"|"/**"{WHITESPACE} {
+<ST_IN_SCRIPTING>"/**#@-*/" {
+        return T_DOC_COMMENT;
+}
+
+<ST_IN_SCRIPTING>"/*"|"/**"{WHITESPACE}|"/**#@+"{WHITESPACE} {
 	int doc_com;
 
 	if (yyleng > 2) {
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Jun 26 18:01:31 2024 UTC