diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java index 51ee5e5f4c58..d4806e161771 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java @@ -280,11 +280,18 @@ public void visit(StaticStatement node) { List expressions = node.getExpressions(); for (Expression expression : expressions) { addAllUntilOffset(expression.getStartOffset()); + // e.g. static $variable = new class() {} + boolean addIndent = !(expression instanceof Assignment + && isAnonymousClass(((Assignment) expression).getRightHandSide())); if (moveNext() && lastIndex < ts.index()) { addFormatToken(formatTokens); // add the first token of the expression and then add the indentation - formatTokens.add(new FormatToken.IndentToken(ts.offset() + ts.token().length(), options.continualIndentSize)); + if (addIndent) { + formatTokens.add(new FormatToken.IndentToken(ts.offset() + ts.token().length(), options.continualIndentSize)); + } scan(expression); - formatTokens.add(new FormatToken.IndentToken(expression.getEndOffset(), -1 * options.continualIndentSize)); + if (addIndent) { + formatTokens.add(new FormatToken.IndentToken(expression.getEndOffset(), -1 * options.continualIndentSize)); + } } } } diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java index ed1e4c928b14..31b63ff225e4 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Parser.java @@ -19,7 +19,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 -// Tue May 14 21:41:03 NOVT 2024 +// Thu Dec 19 14:22:13 JST 2024 //---------------------------------------------------- package org.netbeans.modules.php.editor.parser; @@ -30,7 +30,7 @@ import org.openide.util.Pair; /** CUP v0.11a beta 20060608 generated parser. - * @version Tue May 14 21:41:03 NOVT 2024 + * @version Thu Dec 19 14:22:13 JST 2024 */ @org.netbeans.api.annotations.common.SuppressWarnings({"EI_EXPOSE_REP", "MS_PKGPROTECT", "BC_BAD_CAST_TO_CONCRETE_COLLECTION"}) public class ASTPHP5Parser extends java_cup.runtime.lr_parser { @@ -2343,59 +2343,45 @@ public class ASTPHP5Parser extends java_cup.runtime.lr_parser { "\324\u038f\327\u038e\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\032" + - "\004\346\074\336\075\u0625\077\335\101\352\167\354\177" + - "\333\200\337\307\344\311\334\312\341\315\356\001\001" + - "\000\002\001\001\000\034\004\346\074\336\076\u0627\077" + - "\u024a\100\u024b\101\352\167\354\177\333\200\337\307\344" + - "\311\334\312\341\315\356\001\001\000\002\001\001\000" + - "\004\150\u0629\001\001\000\002\001\001\000\024\043\u062b" + - "\046\u0221\047\u0223\210\u0225\272\u0224\274\u021f\323\135\324" + - "\u0220\333\u0222\001\001\000\002\001\001\000\004\255\u062d" + - "\001\001\000\002\001\001\000\004\017\u062f\001\001\000" + - "\156\004\125\016\u038c\020\u038a\021\144\066\151\067\133" + - "\070\013\071\064\074\042\102\132\106\110\110\166\113" + - "\130\114\101\115\124\116\213\123\136\124\211\125\117" + - "\126\226\137\222\147\023\151\057\167\054\170\041\171" + - "\146\172\131\173\100\174\060\175\066\177\172\200\051" + - "\216\016\217\070\220\046\231\203\232\076\233\040\234" + - "\010\235\175\256\105\260\163\261\021\263\157\266\043" + - "\277\221\300\216\302\031\303\075\304\074\316\165\323" + - "\135\324\u038f\327\u038e\001\001\000\002\001\001\000\136" + - "\004\125\050\u0632\051\u020f\052\u01fb\053\u0203\066\u0211\067" + - "\133\070\013\071\064\074\042\102\132\106\u01ad\115\124" + - "\116\213\123\136\124\211\125\117\126\226\137\222\147" + - "\023\150\u0201\167\054\170\041\171\146\172\131\173\100" + - "\174\060\175\066\177\172\200\051\202\u019c\203\u01fc\220" + - "\u01ff\256\105\260\163\261\021\263\157\266\043\277\221" + - "\300\216\302\031\303\075\304\074\316\165\323\135\324" + - "\u01ab\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\004\104\u0638\001\001\000" + - "\010\177\u0635\200\337\325\u063a\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\136\004\125\050" + - "\u063c\051\u020f\052\u01fb\053\u0203\066\u0211\067\133\070\013" + - "\071\064\074\042\102\132\106\u01ad\115\124\116\213\123" + - "\136\124\211\125\117\126\226\137\222\147\023\150\u0201" + - "\167\054\170\041\171\146\172\131\173\100\174\060\175" + - "\066\177\172\200\051\202\u019c\203\u01fc\220\u01ff\256\105" + - "\260\163\261\021\263\157\266\043\277\221\300\216\302" + - "\031\303\075\304\074\316\165\323\135\324\u01ab\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\056\070\013\071\064\123\u026a\124\211" + - "\125\117\126\226\137\222\170\041\173\u0266\174\060\177" + - "\172\200\051\220\u0643\256\u0642\261\021\263\157\266\043" + - "\300\u0267\302\031\303\075\304\074\316\165\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\120" + "\004\125\066\151\067\133\070\013\071\064\074\042\102" + - "\132\106\u0645\115\124\116\213\123\136\124\211\125\117" + + "\132\106\u0625\115\124\116\213\123\136\124\211\125\117" + "\126\226\137\222\147\023\167\054\170\041\171\146\172" + "\131\173\100\174\060\175\066\177\172\200\051\220\046" + "\256\105\260\163\261\021\263\157\266\043\277\221\300" + "\216\302\031\303\075\304\074\316\165\323\135\324\u01ab" + - "\001\001\000\002\001\001\000\002\001\001\000\004\055" + - "\u0649\001\001\000\002\001\001\000\002\001\001\000\006" + - "\145\u0543\266\u0542\001\001\000\002\001\001\000\136\004" + - "\125\050\u064d\051\u020f\052\u01fb\053\u0203\066\u0211\067\133" + + "\001\001\000\002\001\001\000\120\004\125\066\151\067" + + "\133\070\013\071\064\074\042\102\132\106\u0627\115\124" + + "\116\213\123\136\124\211\125\117\126\226\137\222\147" + + "\023\167\054\170\041\171\146\172\131\173\100\174\060" + + "\175\066\177\172\200\051\220\046\256\105\260\163\261" + + "\021\263\157\266\043\277\221\300\216\302\031\303\075" + + "\304\074\316\165\323\135\324\u01ab\001\001\000\002\001" + + "\001\000\004\150\u0629\001\001\000\002\001\001\000\024" + + "\043\u062b\046\u0221\047\u0223\210\u0225\272\u0224\274\u021f\323" + + "\135\324\u0220\333\u0222\001\001\000\002\001\001\000\004" + + "\255\u062d\001\001\000\002\001\001\000\004\017\u062f\001" + + "\001\000\156\004\125\016\u038c\020\u038a\021\144\066\151" + + "\067\133\070\013\071\064\074\042\102\132\106\110\110" + + "\166\113\130\114\101\115\124\116\213\123\136\124\211" + + "\125\117\126\226\137\222\147\023\151\057\167\054\170" + + "\041\171\146\172\131\173\100\174\060\175\066\177\172" + + "\200\051\216\016\217\070\220\046\231\203\232\076\233" + + "\040\234\010\235\175\256\105\260\163\261\021\263\157" + + "\266\043\277\221\300\216\302\031\303\075\304\074\316" + + "\165\323\135\324\u038f\327\u038e\001\001\000\002\001\001" + + "\000\136\004\125\050\u0632\051\u020f\052\u01fb\053\u0203\066" + + "\u0211\067\133\070\013\071\064\074\042\102\132\106\u01ad" + + "\115\124\116\213\123\136\124\211\125\117\126\226\137" + + "\222\147\023\150\u0201\167\054\170\041\171\146\172\131" + + "\173\100\174\060\175\066\177\172\200\051\202\u019c\203" + + "\u01fc\220\u01ff\256\105\260\163\261\021\263\157\266\043" + + "\277\221\300\216\302\031\303\075\304\074\316\165\323" + + "\135\324\u01ab\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\004\104\u0638\001" + + "\001\000\010\177\u0635\200\337\325\u063a\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\136\004" + + "\125\050\u063c\051\u020f\052\u01fb\053\u0203\066\u0211\067\133" + "\070\013\071\064\074\042\102\132\106\u01ad\115\124\116" + "\213\123\136\124\211\125\117\126\226\137\222\147\023" + "\150\u0201\167\054\170\041\171\146\172\131\173\100\174" + @@ -2403,7 +2389,29 @@ public class ASTPHP5Parser extends java_cup.runtime.lr_parser { "\256\105\260\163\261\021\263\157\266\043\277\221\300" + "\216\302\031\303\075\304\074\316\165\323\135\324\u01ab" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001" }); + "\001\000\002\001\001\000\056\070\013\071\064\123\u026a" + + "\124\211\125\117\126\226\137\222\170\041\173\u0266\174" + + "\060\177\172\200\051\220\u0643\256\u0642\261\021\263\157" + + "\266\043\300\u0267\302\031\303\075\304\074\316\165\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\120\004\125\066\151\067\133\070\013\071\064\074" + + "\042\102\132\106\u0645\115\124\116\213\123\136\124\211" + + "\125\117\126\226\137\222\147\023\167\054\170\041\171" + + "\146\172\131\173\100\174\060\175\066\177\172\200\051" + + "\220\046\256\105\260\163\261\021\263\157\266\043\277" + + "\221\300\216\302\031\303\075\304\074\316\165\323\135" + + "\324\u01ab\001\001\000\002\001\001\000\002\001\001\000" + + "\004\055\u0649\001\001\000\002\001\001\000\002\001\001" + + "\000\006\145\u0543\266\u0542\001\001\000\002\001\001\000" + + "\136\004\125\050\u064d\051\u020f\052\u01fb\053\u0203\066\u0211" + + "\067\133\070\013\071\064\074\042\102\132\106\u01ad\115" + + "\124\116\213\123\136\124\211\125\117\126\226\137\222" + + "\147\023\150\u0201\167\054\170\041\171\146\172\131\173" + + "\100\174\060\175\066\177\172\200\051\202\u019c\203\u01fc" + + "\220\u01ff\256\105\260\163\261\021\263\157\266\043\277" + + "\221\300\216\302\031\303\075\304\074\316\165\323\135" + + "\324\u01ab\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} @@ -8361,7 +8369,7 @@ public final java_cup.runtime.Symbol fakeMethod300to399( return CUP$ASTPHP5Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 325: // static_var_list ::= static_var_list T_COMMA T_VARIABLE T_EQUAL static_scalar + case 325: // static_var_list ::= static_var_list T_COMMA T_VARIABLE T_EQUAL expr { List RESULT =null; int listleft = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-4)).left; @@ -8401,7 +8409,7 @@ public final java_cup.runtime.Symbol fakeMethod300to399( return CUP$ASTPHP5Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 327: // static_var_list ::= T_VARIABLE T_EQUAL static_scalar_with_class_instance + case 327: // static_var_list ::= T_VARIABLE T_EQUAL expr { List RESULT =null; int varleft = ((java_cup.runtime.Symbol)CUP$ASTPHP5Parser$stack.elementAt(CUP$ASTPHP5Parser$top-2)).left; diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Scanner.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Scanner.java index fcf45a8ff472..83d426c76e02 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Scanner.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Scanner.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 2023/10/12 11:50 */ +/* The following code was generated by JFlex 1.4.3 on 2024/12/21 22:32 */ /* * Licensed to the Apache Software Foundation (ASF) under one @@ -35,7 +35,7 @@ /** * This class is a scanner generated by * JFlex 1.4.3 - * on 2023/10/12 11:50 from the specification file + * on 2024/12/21 22:32 from the specification file * /home/junichi11/NetBeansProjects/netbeans/php/php.editor/tools/ASTPHP5Scanner.flex */ public class ASTPHP5Scanner implements Scanner { @@ -96,12 +96,12 @@ public class ASTPHP5Scanner implements Scanner { "\14\15\16\0\5\15\7\0\1\15\1\0\1\15\201\0\5\15\1\0"+ "\2\15\2\0\4\15\1\0\1\15\6\0\1\15\1\0\3\15\1\0"+ "\1\15\1\0\24\15\1\0\123\15\1\0\213\15\10\0\246\15\1\0"+ - "\46\15\2\0\1\15\7\0\47\15\110\0\33\15\5\0\3\15\55\0"+ + "\46\15\2\0\1\15\6\0\51\15\107\0\33\15\4\0\4\15\55\0"+ "\53\15\25\0\12\20\4\0\2\15\1\0\143\15\1\0\1\15\17\0"+ "\2\15\7\0\2\15\12\20\3\15\2\0\1\15\20\0\1\15\1\0"+ "\36\15\35\0\131\15\13\0\1\15\16\0\12\20\41\15\11\0\2\15"+ "\4\0\1\15\5\0\26\15\4\0\1\15\11\0\1\15\3\0\1\15"+ - "\27\0\31\15\7\0\13\15\65\0\25\15\1\0\10\15\106\0\66\15"+ + "\27\0\31\15\7\0\13\15\65\0\25\15\1\0\22\15\74\0\66\15"+ "\3\0\1\15\22\0\1\15\7\0\12\15\4\0\12\20\1\0\20\15"+ "\4\0\10\15\2\0\2\15\2\0\26\15\1\0\7\15\1\0\1\15"+ "\3\0\4\15\3\0\1\15\20\0\1\15\15\0\2\15\1\0\3\15"+ @@ -118,62 +118,61 @@ public class ASTPHP5Scanner implements Scanner { "\27\15\1\0\20\15\3\0\1\15\32\0\3\15\5\0\2\15\4\0"+ "\12\20\20\0\1\15\4\0\10\15\1\0\3\15\1\0\27\15\1\0"+ "\12\15\1\0\5\15\3\0\1\15\40\0\1\15\1\0\2\15\4\0"+ - "\12\20\1\0\2\15\22\0\10\15\1\0\3\15\1\0\51\15\2\0"+ + "\12\20\1\0\2\15\21\0\11\15\1\0\3\15\1\0\51\15\2\0"+ "\1\15\20\0\1\15\5\0\3\15\10\0\3\15\4\0\12\20\12\0"+ "\6\15\5\0\22\15\3\0\30\15\1\0\11\15\1\0\1\15\2\0"+ "\7\15\37\0\12\20\21\0\60\15\1\0\2\15\14\0\7\15\11\0"+ - "\12\20\47\0\2\15\1\0\1\15\2\0\2\15\1\0\1\15\2\0"+ - "\1\15\6\0\4\15\1\0\7\15\1\0\3\15\1\0\1\15\1\0"+ - "\1\15\2\0\2\15\1\0\4\15\1\0\2\15\11\0\1\15\2\0"+ - "\5\15\1\0\1\15\11\0\12\20\2\0\4\15\40\0\1\15\37\0"+ - "\12\20\26\0\10\15\1\0\44\15\33\0\5\15\163\0\53\15\24\0"+ - "\1\15\12\20\6\0\6\15\4\0\4\15\3\0\1\15\3\0\2\15"+ - "\7\0\3\15\4\0\15\15\14\0\1\15\1\0\12\20\6\0\46\15"+ - "\1\0\1\15\5\0\1\15\2\0\53\15\1\0\u014d\15\1\0\4\15"+ - "\2\0\7\15\1\0\1\15\1\0\4\15\2\0\51\15\1\0\4\15"+ - "\2\0\41\15\1\0\4\15\2\0\7\15\1\0\1\15\1\0\4\15"+ - "\2\0\17\15\1\0\71\15\1\0\4\15\2\0\103\15\45\0\20\15"+ - "\20\0\126\15\2\0\6\15\3\0\u026c\15\2\0\21\15\1\0\32\15"+ - "\5\0\113\15\6\0\10\15\7\0\15\15\1\0\4\15\16\0\22\15"+ - "\16\0\22\15\16\0\15\15\1\0\3\15\17\0\64\15\43\0\1\15"+ - "\4\0\1\15\3\0\12\20\46\0\12\20\6\0\130\15\10\0\5\15"+ - "\2\0\42\15\1\0\1\15\5\0\106\15\12\0\37\15\47\0\12\20"+ - "\36\15\2\0\5\15\13\0\54\15\4\0\32\15\6\0\12\20\46\0"+ - "\27\15\11\0\65\15\53\0\12\20\6\0\12\20\15\0\1\15\135\0"+ - "\57\15\21\0\7\15\4\0\12\20\51\0\36\15\15\0\2\15\12\20"+ - "\54\15\32\0\44\15\34\0\12\20\3\0\3\15\12\20\44\15\2\0"+ - "\11\15\140\0\4\15\1\0\4\15\3\0\2\15\11\0\300\15\100\0"+ - "\u0116\15\2\0\6\15\2\0\46\15\2\0\6\15\2\0\10\15\1\0"+ - "\1\15\1\0\1\15\1\0\1\15\1\0\37\15\2\0\65\15\1\0"+ - "\7\15\1\0\1\15\3\0\3\15\1\0\7\15\3\0\4\15\2\0"+ - "\6\15\4\0\15\15\5\0\3\15\1\0\7\15\164\0\1\15\15\0"+ - "\1\15\20\0\15\15\145\0\1\15\4\0\1\15\2\0\12\15\1\0"+ - "\1\15\3\0\5\15\6\0\1\15\1\0\1\15\1\0\1\15\1\0"+ - "\4\15\1\0\13\15\2\0\4\15\5\0\5\15\4\0\1\15\64\0"+ - "\2\15\u0a7b\0\57\15\1\0\57\15\1\0\205\15\6\0\4\15\3\0"+ - "\2\15\14\0\46\15\1\0\1\15\5\0\1\15\2\0\70\15\7\0"+ - "\1\15\20\0\27\15\11\0\7\15\1\0\7\15\1\0\7\15\1\0"+ - "\7\15\1\0\7\15\1\0\7\15\1\0\7\15\1\0\7\15\120\0"+ - "\1\15\u01d5\0\2\15\52\0\5\15\5\0\2\15\4\0\126\15\6\0"+ - "\3\15\1\0\132\15\1\0\4\15\5\0\52\15\2\0\136\15\21\0"+ - "\33\15\65\0\20\15\u0200\0\u19b6\15\112\0\u51f0\15\20\0\u048d\15\103\0"+ - "\56\15\2\0\u010d\15\3\0\20\15\12\20\2\15\24\0\57\15\20\0"+ - "\37\15\2\0\106\15\61\0\11\15\2\0\147\15\2\0\44\15\1\0"+ - "\10\15\77\0\13\15\1\0\3\15\1\0\4\15\1\0\27\15\35\0"+ - "\64\15\16\0\62\15\34\0\12\20\30\0\6\15\3\0\1\15\1\0"+ - "\1\15\2\0\12\20\34\15\12\0\27\15\31\0\35\15\7\0\57\15"+ - "\34\0\1\15\12\20\6\0\5\15\1\0\12\15\12\20\5\15\1\0"+ - "\51\15\27\0\3\15\1\0\10\15\4\0\12\20\6\0\27\15\3\0"+ - "\1\15\3\0\62\15\1\0\1\15\3\0\2\15\2\0\5\15\2\0"+ - "\1\15\1\0\1\15\30\0\3\15\2\0\13\15\7\0\3\15\14\0"+ - "\6\15\2\0\6\15\2\0\6\15\11\0\7\15\1\0\7\15\1\0"+ - "\53\15\1\0\12\15\12\0\163\15\15\0\12\20\6\0\u2ba4\15\14\0"+ - "\27\15\4\0\61\15\u2104\0\u016e\15\2\0\152\15\46\0\7\15\14\0"+ - "\5\15\5\0\1\15\1\0\12\15\1\0\15\15\1\0\5\15\1\0"+ - "\1\15\1\0\2\15\1\0\2\15\1\0\154\15\41\0\u016b\15\22\0"+ - "\100\15\2\0\66\15\50\0\14\15\164\0\5\15\1\0\207\15\23\0"+ - "\12\20\7\0\32\15\6\0\32\15\13\0\131\15\3\0\6\15\2\0"+ - "\6\15\2\0\6\15\2\0\3\15\43\0"; + "\12\20\47\0\2\15\1\0\1\15\1\0\5\15\1\0\30\15\1\0"+ + "\1\15\1\0\12\15\1\0\2\15\11\0\1\15\2\0\5\15\1\0"+ + "\1\15\11\0\12\20\2\0\4\15\40\0\1\15\37\0\12\20\26\0"+ + "\10\15\1\0\44\15\33\0\5\15\163\0\53\15\24\0\1\15\12\20"+ + "\6\0\6\15\4\0\4\15\3\0\1\15\3\0\2\15\7\0\3\15"+ + "\4\0\15\15\14\0\1\15\1\0\12\20\6\0\46\15\1\0\1\15"+ + "\5\0\1\15\2\0\53\15\1\0\u014d\15\1\0\4\15\2\0\7\15"+ + "\1\0\1\15\1\0\4\15\2\0\51\15\1\0\4\15\2\0\41\15"+ + "\1\0\4\15\2\0\7\15\1\0\1\15\1\0\4\15\2\0\17\15"+ + "\1\0\71\15\1\0\4\15\2\0\103\15\45\0\20\15\20\0\126\15"+ + "\2\0\6\15\3\0\u026c\15\2\0\21\15\1\0\32\15\5\0\113\15"+ + "\6\0\10\15\7\0\15\15\1\0\4\15\16\0\22\15\16\0\22\15"+ + "\16\0\15\15\1\0\3\15\17\0\64\15\43\0\1\15\4\0\1\15"+ + "\3\0\12\20\46\0\12\20\6\0\131\15\7\0\5\15\2\0\42\15"+ + "\1\0\1\15\5\0\106\15\12\0\37\15\47\0\12\20\36\15\2\0"+ + "\5\15\13\0\54\15\4\0\32\15\6\0\12\20\46\0\27\15\11\0"+ + "\65\15\53\0\12\20\6\0\12\20\15\0\1\15\135\0\57\15\21\0"+ + "\7\15\4\0\12\20\51\0\36\15\15\0\2\15\12\20\54\15\32\0"+ + "\44\15\34\0\12\20\3\0\3\15\12\20\44\15\2\0\11\15\7\0"+ + "\53\15\2\0\3\15\51\0\4\15\1\0\6\15\1\0\2\15\3\0"+ + "\1\15\5\0\300\15\100\0\u0116\15\2\0\6\15\2\0\46\15\2\0"+ + "\6\15\2\0\10\15\1\0\1\15\1\0\1\15\1\0\1\15\1\0"+ + "\37\15\2\0\65\15\1\0\7\15\1\0\1\15\3\0\3\15\1\0"+ + "\7\15\3\0\4\15\2\0\6\15\4\0\15\15\5\0\3\15\1\0"+ + "\7\15\164\0\1\15\15\0\1\15\20\0\15\15\145\0\1\15\4\0"+ + "\1\15\2\0\12\15\1\0\1\15\3\0\5\15\6\0\1\15\1\0"+ + "\1\15\1\0\1\15\1\0\4\15\1\0\13\15\2\0\4\15\5\0"+ + "\5\15\4\0\1\15\64\0\2\15\u0a7b\0\57\15\1\0\57\15\1\0"+ + "\205\15\6\0\4\15\3\0\2\15\14\0\46\15\1\0\1\15\5\0"+ + "\1\15\2\0\70\15\7\0\1\15\20\0\27\15\11\0\7\15\1\0"+ + "\7\15\1\0\7\15\1\0\7\15\1\0\7\15\1\0\7\15\1\0"+ + "\7\15\1\0\7\15\120\0\1\15\u01d5\0\2\15\52\0\5\15\5\0"+ + "\2\15\4\0\126\15\6\0\3\15\1\0\132\15\1\0\4\15\5\0"+ + "\53\15\1\0\136\15\21\0\40\15\60\0\20\15\u0200\0\u19c0\15\100\0"+ + "\u51fd\15\3\0\u048d\15\103\0\56\15\2\0\u010d\15\3\0\20\15\12\20"+ + "\2\15\24\0\57\15\20\0\37\15\2\0\106\15\61\0\11\15\2\0"+ + "\147\15\2\0\65\15\2\0\11\15\52\0\15\15\1\0\3\15\1\0"+ + "\4\15\1\0\27\15\35\0\64\15\16\0\62\15\34\0\12\20\30\0"+ + "\6\15\3\0\1\15\1\0\2\15\1\0\12\20\34\15\12\0\27\15"+ + "\31\0\35\15\7\0\57\15\34\0\1\15\12\20\6\0\5\15\1\0"+ + "\12\15\12\20\5\15\1\0\51\15\27\0\3\15\1\0\10\15\4\0"+ + "\12\20\6\0\27\15\3\0\1\15\3\0\62\15\1\0\1\15\3\0"+ + "\2\15\2\0\5\15\2\0\1\15\1\0\1\15\30\0\3\15\2\0"+ + "\13\15\7\0\3\15\14\0\6\15\2\0\6\15\2\0\6\15\11\0"+ + "\7\15\1\0\7\15\1\0\53\15\1\0\16\15\6\0\163\15\15\0"+ + "\12\20\6\0\u2ba4\15\14\0\27\15\4\0\61\15\u2104\0\u016e\15\2\0"+ + "\152\15\46\0\7\15\14\0\5\15\5\0\1\15\1\0\12\15\1\0"+ + "\15\15\1\0\5\15\1\0\1\15\1\0\2\15\1\0\2\15\1\0"+ + "\154\15\41\0\u016b\15\22\0\100\15\2\0\66\15\50\0\14\15\164\0"+ + "\5\15\1\0\207\15\23\0\12\20\7\0\32\15\6\0\32\15\13\0"+ + "\131\15\3\0\6\15\2\0\6\15\2\0\6\15\2\0\3\15\43\0"; /** * Translates characters to character classes @@ -1976,7 +1975,7 @@ public ASTPHP5Scanner(java.io.InputStream in) { char [] map = new char[0x10000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 1832) { + while (i < 1820) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -2937,11 +2936,6 @@ else if (zzAtEOF) { // yymore(); } case 343: break; - case 104: - { pushState(ST_LOOKING_FOR_VARNAME); - return createSymbol(ASTPHP5Symbols.T_DOLLAR_OPEN_CURLY_BRACES); - } - case 344: break; case 35: { /* This is a temporary fix which is dependant on flex and it's implementation */ if (!stack.isEmpty()) { @@ -2950,19 +2944,19 @@ else if (zzAtEOF) { bracket--; return createSymbol(ASTPHP5Symbols.T_CURLY_CLOSE); } - case 345: break; + case 344: break; case 140: { return createSymbol(ASTPHP5Symbols.T_NULLSAFE_OBJECT_OPERATOR); } - case 346: break; + case 345: break; case 95: { return createSymbol(ASTPHP5Symbols.T_MOD_EQUAL); } - case 347: break; + case 346: break; case 26: { return createSymbol(ASTPHP5Symbols.T_DIV); } - case 348: break; + case 347: break; case 108: { /* {TABS_AND_SPACES}{LABEL}";"?[^\n\r]*[\n\r]? */ int trailingNewLineLength = 1; @@ -2985,23 +2979,23 @@ else if (zzAtEOF) { yybegin(ST_HEREDOC); } } - case 349: break; + case 348: break; case 32: { return createSymbol(ASTPHP5Symbols.T_CLOSE_RECT); } - case 350: break; + case 349: break; case 133: { return createSymbol(ASTPHP5Symbols.T_SPACESHIP); } - case 351: break; + case 350: break; case 6: { return createSymbol(ASTPHP5Symbols.T_PLUS); } - case 352: break; + case 351: break; case 160: { return createFullSymbol(ASTPHP5Symbols.T_CLASS); } - case 353: break; + case 352: break; case 109: { /* {NEWLINE}+{TABS_AND_SPACES}{LABEL}";"?[^\n\r]*[\r\n]? */ if (isEndHereOrNowdoc(nowdoc)) { @@ -3026,29 +3020,29 @@ else if (zzAtEOF) { updateNowdocBodyInfo(); } } - case 354: break; + case 353: break; case 125: { return createFullSymbol(ASTPHP5Symbols.T_FOR); } - case 355: break; + case 354: break; case 168: { yypushback(3); pushState(ST_LOOKING_FOR_PROPERTY); return createFullSymbol(ASTPHP5Symbols.T_VARIABLE); } - case 356: break; + case 355: break; case 83: { return createSymbol(ASTPHP5Symbols.T_IS_GREATER_OR_EQUAL); } - case 357: break; + case 356: break; case 77: { return createFullSymbol(ASTPHP5Symbols.T_DO); } - case 358: break; + case 357: break; case 99: { return createSymbol(ASTPHP5Symbols.T_BOOLEAN_AND); } - case 359: break; + case 358: break; case 40: { /* {HEREDOC_CHARS} */ int indexOfNewline = yytext().indexOf("\r"); @@ -3061,41 +3055,41 @@ else if (zzAtEOF) { } updateHeredocBodyInfo(); } - case 360: break; + case 359: break; case 4: { return createFullSymbol(ASTPHP5Symbols.T_STRING); } - case 361: break; + case 360: break; case 183: { return createFullSymbol(ASTPHP5Symbols.T_INCLUDE); } - case 362: break; + case 361: break; case 5: { return createSymbol(ASTPHP5Symbols.T_NEKUDA); } - case 363: break; + case 362: break; case 149: { return createFullSymbol(ASTPHP5Symbols.T_ENDIF); } - case 364: break; + case 363: break; case 126: { return createFullSymbol(ASTPHP5Symbols.T_NEW); } - case 365: break; + case 364: break; case 58: { bracket--; return createSymbol(ASTPHP5Symbols.T_CURLY_CLOSE); } - case 366: break; + case 365: break; case 213: { return createFullSymbol(ASTPHP5Symbols.T_INSTANCEOF); } - case 367: break; + case 366: break; case 49: { yypushback(yylength()); popState(); pushState(ST_IN_SCRIPTING); } - case 368: break; + case 367: break; case 169: { isEndedPhp = false; whitespaceEndPosition = getTokenStartPosition() + yylength(); @@ -3103,20 +3097,26 @@ else if (zzAtEOF) { //return T_OPEN_TAG; //return createSymbol(ASTPHP5Symbols.T_OPEN_TAG); } - case 369: break; + case 368: break; case 68: { return createSymbol(ASTPHP5Symbols.T_PLUS_EQUAL); } - case 370: break; + case 369: break; case 78: { // PHP 7.4 Arrow Functions 2.0 // https://wiki.php.net/rfc/arrow_functions_v2 return createFullSymbol(ASTPHP5Symbols.T_FN); } - case 371: break; + case 370: break; case 8: { whitespaceEndPosition = getTokenStartPosition() + yylength(); } + case 371: break; + case 104: + { pushState(ST_LOOKING_FOR_VARNAME); + bracket++; + return createSymbol(ASTPHP5Symbols.T_DOLLAR_OPEN_CURLY_BRACES); + } case 372: break; case 189: { return createFullSymbol(ASTPHP5Symbols.T_PRIVATE); diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java index f14f2512ccf4..192250177e94 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/ASTPHP5Symbols.java @@ -19,7 +19,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 -// Tue May 14 21:41:03 NOVT 2024 +// Thu Dec 19 14:22:13 JST 2024 //---------------------------------------------------- package org.netbeans.modules.php.editor.parser; diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable10.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable10.java index 8a513df358d6..da85798ee0ab 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable10.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable10.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable10() { sb = new StringBuilder(); sb.append("\uff62"); - sb.append("\015"); - sb.append("\uff62"); sb.append("\016"); sb.append("\uff62"); sb.append("\017"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable10() { sb.append("\175"); sb.append("\u01c8"); sb.append("\176"); + sb.append("\u01b8"); + sb.append("\201"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable11.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable11.java index f5dc561555a8..c1d74cf40f55 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable11.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable11.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable11() { sb = new StringBuilder(); - sb.append("\u01b8"); - sb.append("\201"); sb.append("\u01bd"); sb.append("\215"); sb.append("\ufe21"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable11() { sb.append("\112"); sb.append("\u0437"); sb.append("\121"); + sb.append("\u0439"); + sb.append("\222"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable12.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable12.java index a359dbb05f7d..ad5a65bcdcd1 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable12.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable12.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable12() { sb = new StringBuilder(); - sb.append("\u0439"); - sb.append("\222"); sb.append("\333"); sb.append("\253"); sb.append("\240"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable12() { sb.append("\166"); sb.append("\u01c0"); sb.append("\167"); + sb.append("\u01d0"); + sb.append("\170"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java index 2428a26996e2..81d505b48359 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable13.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable13() { sb = new StringBuilder(); - sb.append("\u01d0"); - sb.append("\170"); sb.append("\u01cb"); sb.append("\171"); sb.append("\u01c6"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable13() { sb.append("\125"); sb.append("\115"); sb.append("\126"); + sb.append("\130"); + sb.append("\127"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable14.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable14.java index 96b100ef6739..1d6d31faca5b 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable14.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable14.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable14() { sb = new StringBuilder(); - sb.append("\130"); - sb.append("\127"); sb.append("\ufcfd"); sb.append("\133"); sb.append("\020"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable14() { sb.append("\236"); sb.append("\uff02"); sb.append("\240"); + sb.append("\uff02"); + sb.append("\247"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable15.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable15.java index 63dbcf7c2867..d67f6ad31cc9 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable15.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable15.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable15() { sb = new StringBuilder(); sb.append("\uff02"); - sb.append("\247"); - sb.append("\uff02"); sb.append("\250"); sb.append("\uff02"); sb.append("\252"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable15() { sb.append("\027"); sb.append("\uff7c"); sb.append("\032"); + sb.append("\uff7c"); + sb.append("\034"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable16.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable16.java index 2d2ec806374e..8eee50d10f23 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable16.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable16.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable16() { sb = new StringBuilder(); sb.append("\uff7c"); - sb.append("\034"); - sb.append("\uff7c"); sb.append("\036"); sb.append("\uff7c"); sb.append("\041"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable16() { sb.append("\052"); sb.append("\056"); sb.append("\054"); + sb.append("\026"); + sb.append("\056"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable17.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable17.java index af2dcf7a4e36..a0bbdddace09 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable17.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable17.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable17() { sb = new StringBuilder(); - sb.append("\026"); - sb.append("\056"); sb.append("\u038e"); sb.append("\057"); sb.append("\016"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable17() { sb.append("\066"); sb.append("\uff3d"); sb.append("\074"); + sb.append("\uff3d"); + sb.append("\075"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable18.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable18.java index 3e6c6875369b..04fd741f0f75 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable18.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable18.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable18() { sb = new StringBuilder(); sb.append("\uff3d"); - sb.append("\075"); - sb.append("\uff3d"); sb.append("\077"); sb.append("\uff3d"); sb.append("\100"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable18() { sb.append("\212"); sb.append("\062"); sb.append("\213"); + sb.append("\073"); + sb.append("\214"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable19.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable19.java index 5c3d34d50cb9..ec70a63c60f7 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable19.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable19.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable19() { sb = new StringBuilder(); - sb.append("\073"); - sb.append("\214"); sb.append("\113"); sb.append("\216"); sb.append("\100"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable19() { sb.append("\122"); sb.append("\013"); sb.append("\123"); + sb.append("\064"); + sb.append("\124"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable20.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable20.java index d814868d2b57..08b259c70557 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable20.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable20.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable20() { sb = new StringBuilder(); - sb.append("\064"); - sb.append("\124"); sb.append("\123"); sb.append("\125"); sb.append("\115"); @@ -1138,19 +1136,41 @@ protected EncodedActionTable20() { sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\070"); + sb.append("\170"); + sb.append("\004"); + sb.append("\201"); sb.append("\006"); sb.append("\155"); sb.append("\007"); sb.append("\174"); sb.append("\010"); - sb.append("\351"); + sb.append("\u01a9"); + sb.append("\011"); + sb.append("\203"); + sb.append("\012"); + sb.append("\074"); sb.append("\015"); - sb.append("\356"); + sb.append("\031"); sb.append("\016"); - sb.append("\350"); + sb.append("\070"); + sb.append("\032"); + sb.append("\105"); + sb.append("\036"); + sb.append("\124"); + sb.append("\044"); + sb.append("\221"); + sb.append("\045"); + sb.append("\u01ab"); + sb.append("\054"); + sb.append("\026"); + sb.append("\062"); + sb.append("\207"); + sb.append("\063"); + sb.append("\010"); + sb.append("\074"); + sb.append("\050"); sb.append("\075"); - sb.append("\343"); + sb.append("\165"); sb.append("\077"); sb.append("\122"); sb.append("\100"); @@ -1171,22 +1191,64 @@ protected EncodedActionTable20() { sb.append("\045"); sb.append("\121"); sb.append("\157"); + sb.append("\122"); + sb.append("\013"); + sb.append("\123"); + sb.append("\064"); + sb.append("\124"); + sb.append("\123"); + sb.append("\125"); + sb.append("\115"); + sb.append("\126"); + sb.append("\130"); + sb.append("\133"); + sb.append("\020"); sb.append("\172"); - sb.append("\354"); + sb.append("\103"); sb.append("\173"); - sb.append("\344"); + sb.append("\175"); sb.append("\177"); - sb.append("\341"); + sb.append("\127"); sb.append("\200"); - sb.append("\346"); + sb.append("\066"); + sb.append("\202"); + sb.append("\053"); + sb.append("\203"); + sb.append("\117"); + sb.append("\204"); + sb.append("\206"); + sb.append("\205"); + sb.append("\153"); + sb.append("\206"); + sb.append("\215"); + sb.append("\207"); + sb.append("\150"); + sb.append("\210"); + sb.append("\141"); + sb.append("\211"); + sb.append("\154"); + sb.append("\212"); + sb.append("\062"); + sb.append("\213"); + sb.append("\073"); sb.append("\214"); - sb.append("\352"); + sb.append("\113"); + sb.append("\216"); + sb.append("\100"); sb.append("\222"); - sb.append("\333"); + sb.append("\u01aa"); sb.append("\230"); - sb.append("\360"); + sb.append("\u01ad"); + sb.append("\233"); + sb.append("\151"); + sb.append("\234"); + sb.append("\015"); + sb.append("\235"); + sb.append("\072"); sb.append("\236"); sb.append("\057"); + sb.append("\247"); + sb.append("\021"); sb.append("\253"); sb.append("\146"); sb.append("\254"); @@ -1196,27 +1258,109 @@ protected EncodedActionTable20() { sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\006"); + sb.append("\102"); + sb.append("\031"); + sb.append("\u01cc"); sb.append("\127"); sb.append("\ufebc"); + sb.append("\130"); + sb.append("\u01c3"); + sb.append("\131"); + sb.append("\u01d4"); + sb.append("\132"); + sb.append("\u01bb"); + sb.append("\150"); + sb.append("\u01be"); sb.append("\151"); sb.append("\ufebc"); + sb.append("\152"); + sb.append("\u01ba"); + sb.append("\153"); + sb.append("\u01ce"); + sb.append("\154"); + sb.append("\u01bc"); + sb.append("\155"); + sb.append("\u01c5"); + sb.append("\156"); + sb.append("\u01cd"); + sb.append("\157"); + sb.append("\u01d3"); + sb.append("\160"); + sb.append("\u01c7"); + sb.append("\161"); + sb.append("\u01b7"); + sb.append("\162"); + sb.append("\u01c4"); + sb.append("\163"); + sb.append("\u01d1"); + sb.append("\164"); + sb.append("\u01cf"); + sb.append("\165"); + sb.append("\u01c2"); + sb.append("\166"); + sb.append("\u01c0"); + sb.append("\167"); + sb.append("\u01d0"); + sb.append("\170"); + sb.append("\u01cb"); + sb.append("\171"); + sb.append("\u01c6"); + sb.append("\172"); + sb.append("\u01d5"); + sb.append("\173"); + sb.append("\u01c1"); + sb.append("\174"); + sb.append("\u01ca"); + sb.append("\175"); + sb.append("\u01c8"); + sb.append("\176"); + sb.append("\u01b8"); + sb.append("\201"); + sb.append("\u01bd"); + sb.append("\242"); + sb.append("\u01bf"); + sb.append("\245"); + sb.append("\u01b9"); + sb.append("\251"); + sb.append("\u01d2"); sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\072"); + sb.append("\170"); + sb.append("\004"); + sb.append("\201"); sb.append("\006"); sb.append("\155"); sb.append("\007"); sb.append("\174"); sb.append("\010"); - sb.append("\351"); + sb.append("\u01a9"); + sb.append("\011"); + sb.append("\203"); + sb.append("\012"); + sb.append("\074"); sb.append("\015"); - sb.append("\356"); + sb.append("\031"); sb.append("\016"); - sb.append("\350"); + sb.append("\070"); + sb.append("\032"); + sb.append("\105"); + sb.append("\036"); + sb.append("\124"); + sb.append("\044"); + sb.append("\221"); + sb.append("\045"); + sb.append("\u01ab"); + sb.append("\054"); + sb.append("\026"); + sb.append("\062"); + sb.append("\207"); + sb.append("\063"); + sb.append("\010"); + sb.append("\074"); + sb.append("\050"); sb.append("\075"); - sb.append("\343"); + sb.append("\165"); sb.append("\077"); sb.append("\122"); sb.append("\100"); @@ -1237,24 +1381,64 @@ protected EncodedActionTable20() { sb.append("\045"); sb.append("\121"); sb.append("\157"); + sb.append("\122"); + sb.append("\013"); + sb.append("\123"); + sb.append("\064"); + sb.append("\124"); + sb.append("\123"); + sb.append("\125"); + sb.append("\115"); + sb.append("\126"); + sb.append("\130"); + sb.append("\133"); + sb.append("\020"); sb.append("\172"); - sb.append("\354"); + sb.append("\103"); sb.append("\173"); - sb.append("\344"); + sb.append("\175"); sb.append("\177"); - sb.append("\341"); + sb.append("\127"); sb.append("\200"); - sb.append("\346"); + sb.append("\066"); + sb.append("\202"); + sb.append("\053"); + sb.append("\203"); + sb.append("\117"); + sb.append("\204"); + sb.append("\206"); + sb.append("\205"); + sb.append("\153"); + sb.append("\206"); + sb.append("\215"); + sb.append("\207"); + sb.append("\150"); + sb.append("\210"); + sb.append("\141"); + sb.append("\211"); + sb.append("\154"); + sb.append("\212"); + sb.append("\062"); + sb.append("\213"); + sb.append("\073"); sb.append("\214"); - sb.append("\352"); + sb.append("\113"); sb.append("\216"); - sb.append("\u024d"); + sb.append("\100"); sb.append("\222"); - sb.append("\333"); + sb.append("\u01aa"); sb.append("\230"); - sb.append("\360"); + sb.append("\u01ad"); + sb.append("\233"); + sb.append("\151"); + sb.append("\234"); + sb.append("\015"); + sb.append("\235"); + sb.append("\072"); sb.append("\236"); sb.append("\057"); + sb.append("\247"); + sb.append("\021"); sb.append("\253"); sb.append("\146"); sb.append("\254"); @@ -1264,11 +1448,71 @@ protected EncodedActionTable20() { sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\006"); + sb.append("\102"); + sb.append("\031"); + sb.append("\u01cc"); sb.append("\127"); sb.append("\ufeba"); + sb.append("\130"); + sb.append("\u01c3"); + sb.append("\131"); + sb.append("\u01d4"); + sb.append("\132"); + sb.append("\u01bb"); + sb.append("\150"); + sb.append("\u01be"); sb.append("\151"); sb.append("\ufeba"); + sb.append("\152"); + sb.append("\u01ba"); + sb.append("\153"); + sb.append("\u01ce"); + sb.append("\154"); + sb.append("\u01bc"); + sb.append("\155"); + sb.append("\u01c5"); + sb.append("\156"); + sb.append("\u01cd"); + sb.append("\157"); + sb.append("\u01d3"); + sb.append("\160"); + sb.append("\u01c7"); + sb.append("\161"); + sb.append("\u01b7"); + sb.append("\162"); + sb.append("\u01c4"); + sb.append("\163"); + sb.append("\u01d1"); + sb.append("\164"); + sb.append("\u01cf"); + sb.append("\165"); + sb.append("\u01c2"); + sb.append("\166"); + sb.append("\u01c0"); + sb.append("\167"); + sb.append("\u01d0"); + sb.append("\170"); + sb.append("\u01cb"); + sb.append("\171"); + sb.append("\u01c6"); + sb.append("\172"); + sb.append("\u01d5"); + sb.append("\173"); + sb.append("\u01c1"); + sb.append("\174"); + sb.append("\u01ca"); + sb.append("\175"); + sb.append("\u01c8"); + sb.append("\176"); + sb.append("\u01b8"); + sb.append("\201"); + sb.append("\u01bd"); + sb.append("\242"); + sb.append("\u01bf"); + sb.append("\245"); + sb.append("\u01b9"); + sb.append("\251"); + sb.append("\u01d2"); sb.append("\001"); sb.append("\002"); sb.append("\000"); diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable21.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable21.java new file mode 100644 index 000000000000..9fb67e9f6ba3 --- /dev/null +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable21.java @@ -0,0 +1,895 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.netbeans.modules.php.editor.parser; + +/** + * Class generated by Parser Cutter + */ +public class EncodedActionTable21 { + protected final StringBuilder sb; + public String getTableData() { + return sb.toString(); + } + protected EncodedActionTable21() { + sb = new StringBuilder(); + sb.append("\122"); + sb.append("\013"); + sb.append("\123"); + sb.append("\065"); + sb.append("\124"); + sb.append("\124"); + sb.append("\125"); + sb.append("\116"); + sb.append("\126"); + sb.append("\131"); + sb.append("\133"); + sb.append("\020"); + sb.append("\172"); + sb.append("\104"); + sb.append("\173"); + sb.append("\176"); + sb.append("\177"); + sb.append("\130"); + sb.append("\200"); + sb.append("\067"); + sb.append("\202"); + sb.append("\054"); + sb.append("\203"); + sb.append("\120"); + sb.append("\204"); + sb.append("\207"); + sb.append("\205"); + sb.append("\154"); + sb.append("\206"); + sb.append("\216"); + sb.append("\207"); + sb.append("\151"); + sb.append("\210"); + sb.append("\142"); + sb.append("\211"); + sb.append("\155"); + sb.append("\212"); + sb.append("\063"); + sb.append("\213"); + sb.append("\074"); + sb.append("\214"); + sb.append("\114"); + sb.append("\216"); + sb.append("\101"); + sb.append("\222"); + sb.append("\u01ab"); + sb.append("\230"); + sb.append("\u01ae"); + sb.append("\233"); + sb.append("\152"); + sb.append("\234"); + sb.append("\015"); + sb.append("\235"); + sb.append("\073"); + sb.append("\236"); + sb.append("\060"); + sb.append("\247"); + sb.append("\021"); + sb.append("\253"); + sb.append("\147"); + sb.append("\254"); + sb.append("\064"); + sb.append("\255"); + sb.append("\055"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\006"); + sb.append("\127"); + sb.append("\ufd4d"); + sb.append("\151"); + sb.append("\ufd4d"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\006"); + sb.append("\127"); + sb.append("\ufebf"); + sb.append("\151"); + sb.append("\ufebf"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\100"); + sb.append("\031"); + sb.append("\u01cd"); + sb.append("\112"); + sb.append("\u065c"); + sb.append("\130"); + sb.append("\u01c4"); + sb.append("\131"); + sb.append("\u01d5"); + sb.append("\132"); + sb.append("\u01bc"); + sb.append("\150"); + sb.append("\u01bf"); + sb.append("\152"); + sb.append("\u01bb"); + sb.append("\153"); + sb.append("\u01cf"); + sb.append("\154"); + sb.append("\u01bd"); + sb.append("\155"); + sb.append("\u01c6"); + sb.append("\156"); + sb.append("\u01ce"); + sb.append("\157"); + sb.append("\u01d4"); + sb.append("\160"); + sb.append("\u01c8"); + sb.append("\161"); + sb.append("\u01b8"); + sb.append("\162"); + sb.append("\u01c5"); + sb.append("\163"); + sb.append("\u01d2"); + sb.append("\164"); + sb.append("\u01d0"); + sb.append("\165"); + sb.append("\u01c3"); + sb.append("\166"); + sb.append("\u01c1"); + sb.append("\167"); + sb.append("\u01d1"); + sb.append("\170"); + sb.append("\u01cc"); + sb.append("\171"); + sb.append("\u01c7"); + sb.append("\172"); + sb.append("\u01d6"); + sb.append("\173"); + sb.append("\u01c2"); + sb.append("\174"); + sb.append("\u01cb"); + sb.append("\175"); + sb.append("\u01c9"); + sb.append("\176"); + sb.append("\u01b9"); + sb.append("\201"); + sb.append("\u01be"); + sb.append("\242"); + sb.append("\u01c0"); + sb.append("\245"); + sb.append("\u01ba"); + sb.append("\251"); + sb.append("\u01d3"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\006"); + sb.append("\127"); + sb.append("\ufebe"); + sb.append("\151"); + sb.append("\ufebe"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\006"); + sb.append("\012"); + sb.append("\u0655"); + sb.append("\233"); + sb.append("\u0656"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\322"); + sb.append("\002"); + sb.append("\uff67"); + sb.append("\003"); + sb.append("\uff67"); + sb.append("\004"); + sb.append("\uff67"); + sb.append("\005"); + sb.append("\uff67"); + sb.append("\006"); + sb.append("\uff67"); + sb.append("\007"); + sb.append("\uff67"); + sb.append("\010"); + sb.append("\uff67"); + sb.append("\011"); + sb.append("\uff67"); + sb.append("\012"); + sb.append("\uff67"); + sb.append("\014"); + sb.append("\uff67"); + sb.append("\015"); + sb.append("\uff67"); + sb.append("\016"); + sb.append("\uff67"); + sb.append("\017"); + sb.append("\uff67"); + sb.append("\020"); + sb.append("\uff67"); + sb.append("\021"); + sb.append("\uff67"); + sb.append("\022"); + sb.append("\uff67"); + sb.append("\023"); + sb.append("\uff67"); + sb.append("\024"); + sb.append("\uff67"); + sb.append("\025"); + sb.append("\uff67"); + sb.append("\026"); + sb.append("\uff67"); + sb.append("\027"); + sb.append("\uff67"); + sb.append("\030"); + sb.append("\uff67"); + sb.append("\032"); + sb.append("\uff67"); + sb.append("\034"); + sb.append("\uff67"); + sb.append("\035"); + sb.append("\uff67"); + sb.append("\036"); + sb.append("\uff67"); + sb.append("\037"); + sb.append("\uff67"); + sb.append("\040"); + sb.append("\uff67"); + sb.append("\041"); + sb.append("\uff67"); + sb.append("\042"); + sb.append("\uff67"); + sb.append("\043"); + sb.append("\uff67"); + sb.append("\044"); + sb.append("\uff67"); + sb.append("\045"); + sb.append("\uff67"); + sb.append("\046"); + sb.append("\uff67"); + sb.append("\047"); + sb.append("\uff67"); + sb.append("\050"); + sb.append("\uff67"); + sb.append("\051"); + sb.append("\uff67"); + sb.append("\052"); + sb.append("\uff67"); + sb.append("\054"); + sb.append("\uff67"); + sb.append("\056"); + sb.append("\uff67"); + sb.append("\057"); + sb.append("\uff67"); + sb.append("\061"); + sb.append("\uff67"); + sb.append("\062"); + sb.append("\uff67"); + sb.append("\063"); + sb.append("\uff67"); + sb.append("\064"); + sb.append("\uff67"); + sb.append("\065"); + sb.append("\uff67"); + sb.append("\066"); + sb.append("\uff67"); + sb.append("\074"); + sb.append("\uff67"); + sb.append("\075"); + sb.append("\uff67"); + sb.append("\077"); + sb.append("\uff67"); + sb.append("\100"); + sb.append("\uff67"); + sb.append("\101"); + sb.append("\uff67"); + sb.append("\102"); + sb.append("\uff67"); + sb.append("\103"); + sb.append("\uff67"); + sb.append("\104"); + sb.append("\uff67"); + sb.append("\105"); + sb.append("\uff67"); + sb.append("\111"); + sb.append("\uff67"); + sb.append("\112"); + sb.append("\uff67"); + sb.append("\114"); + sb.append("\uff67"); + sb.append("\115"); + sb.append("\uff67"); + sb.append("\116"); + sb.append("\uff67"); + sb.append("\120"); + sb.append("\uff67"); + sb.append("\121"); + sb.append("\uff67"); + sb.append("\122"); + sb.append("\uff67"); + sb.append("\123"); + sb.append("\uff67"); + sb.append("\124"); + sb.append("\uff67"); + sb.append("\125"); + sb.append("\uff67"); + sb.append("\126"); + sb.append("\uff67"); + sb.append("\133"); + sb.append("\uff67"); + sb.append("\151"); + sb.append("\uff67"); + sb.append("\172"); + sb.append("\uff67"); + sb.append("\173"); + sb.append("\uff67"); + sb.append("\177"); + sb.append("\uff67"); + sb.append("\200"); + sb.append("\uff67"); + sb.append("\202"); + sb.append("\uff67"); + sb.append("\203"); + sb.append("\uff67"); + sb.append("\204"); + sb.append("\uff67"); + sb.append("\205"); + sb.append("\uff67"); + sb.append("\206"); + sb.append("\uff67"); + sb.append("\207"); + sb.append("\uff67"); + sb.append("\210"); + sb.append("\uff67"); + sb.append("\211"); + sb.append("\uff67"); + sb.append("\212"); + sb.append("\uff67"); + sb.append("\213"); + sb.append("\uff67"); + sb.append("\214"); + sb.append("\uff67"); + sb.append("\216"); + sb.append("\uff67"); + sb.append("\217"); + sb.append("\uff67"); + sb.append("\220"); + sb.append("\uff67"); + sb.append("\221"); + sb.append("\uff67"); + sb.append("\222"); + sb.append("\uff67"); + sb.append("\223"); + sb.append("\uff67"); + sb.append("\224"); + sb.append("\uff67"); + sb.append("\230"); + sb.append("\uff67"); + sb.append("\233"); + sb.append("\uff67"); + sb.append("\234"); + sb.append("\uff67"); + sb.append("\235"); + sb.append("\uff67"); + sb.append("\236"); + sb.append("\uff67"); + sb.append("\240"); + sb.append("\uff67"); + sb.append("\247"); + sb.append("\uff67"); + sb.append("\250"); + sb.append("\uff67"); + sb.append("\252"); + sb.append("\uff67"); + sb.append("\253"); + sb.append("\uff67"); + sb.append("\254"); + sb.append("\uff67"); + sb.append("\255"); + sb.append("\uff67"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\006"); + sb.append("\127"); + sb.append("\ufec2"); + sb.append("\151"); + sb.append("\ufec2"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\014"); + sb.append("\012"); + sb.append("\075"); + sb.append("\015"); + sb.append("\u0555"); + sb.append("\107"); + sb.append("\u0554"); + sb.append("\110"); + sb.append("\u0552"); + sb.append("\234"); + sb.append("\u0661"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\116"); + sb.append("\031"); + sb.append("\ufd70"); + sb.append("\033"); + sb.append("\ufd70"); + sb.append("\073"); + sb.append("\ufd70"); + sb.append("\112"); + sb.append("\ufd70"); + sb.append("\127"); + sb.append("\ufd70"); + sb.append("\130"); + sb.append("\ufd70"); + sb.append("\131"); + sb.append("\ufd70"); + sb.append("\132"); + sb.append("\ufd70"); + sb.append("\150"); + sb.append("\ufd70"); + sb.append("\151"); + sb.append("\ufd70"); + sb.append("\152"); + sb.append("\ufd70"); + sb.append("\153"); + sb.append("\ufd70"); + sb.append("\154"); + sb.append("\ufd70"); + sb.append("\155"); + sb.append("\ufd70"); + sb.append("\156"); + sb.append("\ufd70"); + sb.append("\157"); + sb.append("\ufd70"); + sb.append("\160"); + sb.append("\ufd70"); + sb.append("\161"); + sb.append("\ufd70"); + sb.append("\162"); + sb.append("\ufd70"); + sb.append("\163"); + sb.append("\ufd70"); + sb.append("\164"); + sb.append("\ufd70"); + sb.append("\165"); + sb.append("\ufd70"); + sb.append("\166"); + sb.append("\ufd70"); + sb.append("\167"); + sb.append("\ufd70"); + sb.append("\170"); + sb.append("\ufd70"); + sb.append("\171"); + sb.append("\ufd70"); + sb.append("\172"); + sb.append("\ufd70"); + sb.append("\173"); + sb.append("\ufd70"); + sb.append("\174"); + sb.append("\ufd70"); + sb.append("\175"); + sb.append("\ufd70"); + sb.append("\176"); + sb.append("\ufd70"); + sb.append("\201"); + sb.append("\ufd70"); + sb.append("\215"); + sb.append("\ufd70"); + sb.append("\231"); + sb.append("\ufd70"); + sb.append("\232"); + sb.append("\ufd70"); + sb.append("\242"); + sb.append("\ufd70"); + sb.append("\245"); + sb.append("\ufd70"); + sb.append("\251"); + sb.append("\ufd70"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\344"); + sb.append("\003"); + sb.append("\u021c"); + sb.append("\004"); + sb.append("\u0219"); + sb.append("\005"); + sb.append("\u01a7"); + sb.append("\006"); + sb.append("\156"); + sb.append("\007"); + sb.append("\175"); + sb.append("\010"); + sb.append("\u021d"); + sb.append("\011"); + sb.append("\204"); + sb.append("\012"); + sb.append("\075"); + sb.append("\015"); + sb.append("\031"); + sb.append("\016"); + sb.append("\071"); + sb.append("\017"); + sb.append("\u0193"); + sb.append("\020"); + sb.append("\u0190"); + sb.append("\021"); + sb.append("\u016b"); + sb.append("\022"); + sb.append("\u0171"); + sb.append("\023"); + sb.append("\u0165"); + sb.append("\024"); + sb.append("\u0186"); + sb.append("\025"); + sb.append("\u0183"); + sb.append("\026"); + sb.append("\u016d"); + sb.append("\027"); + sb.append("\u01a8"); + sb.append("\030"); + sb.append("\u018c"); + sb.append("\031"); + sb.append("\u0170"); + sb.append("\032"); + sb.append("\u020b"); + sb.append("\033"); + sb.append("\u0167"); + sb.append("\034"); + sb.append("\u0196"); + sb.append("\035"); + sb.append("\u0182"); + sb.append("\036"); + sb.append("\u0210"); + sb.append("\037"); + sb.append("\u0158"); + sb.append("\040"); + sb.append("\u0175"); + sb.append("\041"); + sb.append("\u0172"); + sb.append("\042"); + sb.append("\u0191"); + sb.append("\043"); + sb.append("\u017d"); + sb.append("\044"); + sb.append("\u021e"); + sb.append("\045"); + sb.append("\u01fb"); + sb.append("\046"); + sb.append("\u0198"); + sb.append("\047"); + sb.append("\u019a"); + sb.append("\050"); + sb.append("\u015a"); + sb.append("\052"); + sb.append("\u0168"); + sb.append("\053"); + sb.append("\u01a4"); + sb.append("\054"); + sb.append("\u01fd"); + sb.append("\055"); + sb.append("\u0174"); + sb.append("\056"); + sb.append("\u0161"); + sb.append("\057"); + sb.append("\u0159"); + sb.append("\060"); + sb.append("\u01a5"); + sb.append("\061"); + sb.append("\u017f"); + sb.append("\062"); + sb.append("\u021b"); + sb.append("\063"); + sb.append("\u01f7"); + sb.append("\065"); + sb.append("\u01fe"); + sb.append("\066"); + sb.append("\u019c"); + sb.append("\067"); + sb.append("\u0160"); + sb.append("\070"); + sb.append("\u0184"); + sb.append("\074"); + sb.append("\u0205"); + sb.append("\075"); + sb.append("\u0218"); + sb.append("\076"); + sb.append("\u015e"); + sb.append("\077"); + sb.append("\u020e"); + sb.append("\100"); + sb.append("\u01f8"); + sb.append("\101"); + sb.append("\u021a"); + sb.append("\102"); + sb.append("\u01ff"); + sb.append("\103"); + sb.append("\u0213"); + sb.append("\104"); + sb.append("\u020d"); + sb.append("\105"); + sb.append("\141"); + sb.append("\114"); + sb.append("\u0180"); + sb.append("\115"); + sb.append("\u0212"); + sb.append("\116"); + sb.append("\u0202"); + sb.append("\121"); + sb.append("\u0217"); + sb.append("\122"); + sb.append("\u01f9"); + sb.append("\123"); + sb.append("\u0207"); + sb.append("\124"); + sb.append("\u020f"); + sb.append("\125"); + sb.append("\u020c"); + sb.append("\126"); + sb.append("\u0211"); + sb.append("\130"); + sb.append("\u019f"); + sb.append("\131"); + sb.append("\u01a0"); + sb.append("\132"); + sb.append("\u019b"); + sb.append("\133"); + sb.append("\u01fa"); + sb.append("\156"); + sb.append("\u0203"); + sb.append("\172"); + sb.append("\104"); + sb.append("\173"); + sb.append("\176"); + sb.append("\177"); + sb.append("\130"); + sb.append("\200"); + sb.append("\067"); + sb.append("\202"); + sb.append("\054"); + sb.append("\203"); + sb.append("\120"); + sb.append("\204"); + sb.append("\207"); + sb.append("\205"); + sb.append("\154"); + sb.append("\206"); + sb.append("\216"); + sb.append("\207"); + sb.append("\151"); + sb.append("\210"); + sb.append("\142"); + sb.append("\211"); + sb.append("\155"); + sb.append("\212"); + sb.append("\063"); + sb.append("\213"); + sb.append("\074"); + sb.append("\214"); + sb.append("\114"); + sb.append("\216"); + sb.append("\u020a"); + sb.append("\217"); + sb.append("\u017a"); + sb.append("\220"); + sb.append("\u017b"); + sb.append("\221"); + sb.append("\u018e"); + sb.append("\222"); + sb.append("\u01fc"); + sb.append("\223"); + sb.append("\u0176"); + sb.append("\224"); + sb.append("\u015d"); + sb.append("\225"); + sb.append("\u018b"); + sb.append("\226"); + sb.append("\u018a"); + sb.append("\227"); + sb.append("\u0199"); + sb.append("\230"); + sb.append("\u01ae"); + sb.append("\231"); + sb.append("\ufece"); + sb.append("\233"); + sb.append("\152"); + sb.append("\234"); + sb.append("\015"); + sb.append("\235"); + sb.append("\073"); + sb.append("\236"); + sb.append("\060"); + sb.append("\240"); + sb.append("\u018f"); + sb.append("\241"); + sb.append("\u0189"); + sb.append("\244"); + sb.append("\u0209"); + sb.append("\247"); + sb.append("\021"); + sb.append("\250"); + sb.append("\u0157"); + sb.append("\253"); + sb.append("\147"); + sb.append("\254"); + sb.append("\064"); + sb.append("\255"); + sb.append("\055"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\004"); + sb.append("\231"); + sb.append("\u0664"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\172"); + sb.append("\031"); + sb.append("\ufdea"); + sb.append("\033"); + sb.append("\ufdea"); + sb.append("\071"); + sb.append("\ufdea"); + sb.append("\072"); + sb.append("\ufdea"); + sb.append("\073"); + sb.append("\ufdea"); + sb.append("\111"); + sb.append("\ufdea"); + sb.append("\112"); + sb.append("\ufdea"); + sb.append("\113"); + sb.append("\ufdea"); + sb.append("\127"); + sb.append("\ufdea"); + sb.append("\130"); + sb.append("\ufdea"); + sb.append("\131"); + sb.append("\ufdea"); + sb.append("\132"); + sb.append("\ufdea"); + sb.append("\134"); + sb.append("\ufdea"); + sb.append("\135"); + sb.append("\ufdea"); + sb.append("\136"); + sb.append("\ufdea"); + sb.append("\137"); + sb.append("\ufdea"); + sb.append("\140"); + sb.append("\ufdea"); + sb.append("\141"); + sb.append("\ufdea"); + sb.append("\142"); + sb.append("\ufdea"); + sb.append("\143"); + sb.append("\ufdea"); + sb.append("\144"); + sb.append("\ufdea"); + sb.append("\145"); + sb.append("\ufdea"); + sb.append("\146"); + sb.append("\ufdea"); + sb.append("\147"); + sb.append("\ufdea"); + sb.append("\150"); + sb.append("\ufdea"); + sb.append("\151"); + sb.append("\ufdea"); + sb.append("\152"); + sb.append("\ufdea"); + sb.append("\153"); + sb.append("\ufdea"); + sb.append("\154"); + sb.append("\ufdea"); + sb.append("\155"); + sb.append("\ufdea"); + sb.append("\156"); + sb.append("\ufdea"); + sb.append("\157"); + sb.append("\ufdea"); + sb.append("\160"); + sb.append("\ufdea"); + sb.append("\161"); + sb.append("\ufdea"); + sb.append("\162"); + sb.append("\ufdea"); + sb.append("\163"); + sb.append("\ufdea"); + sb.append("\164"); + sb.append("\ufdea"); + sb.append("\165"); + sb.append("\ufdea"); + sb.append("\166"); + sb.append("\ufdea"); + sb.append("\167"); + sb.append("\ufdea"); + sb.append("\170"); + sb.append("\ufdea"); + sb.append("\171"); + sb.append("\ufdea"); + sb.append("\172"); + sb.append("\ufdea"); + sb.append("\173"); + sb.append("\ufdea"); + sb.append("\174"); + sb.append("\ufdea"); + sb.append("\175"); + sb.append("\ufdea"); + sb.append("\176"); + sb.append("\ufdea"); + sb.append("\201"); + sb.append("\ufdea"); + sb.append("\202"); + sb.append("\ufdea"); + sb.append("\203"); + sb.append("\ufdea"); + sb.append("\214"); + sb.append("\ufdea"); + sb.append("\215"); + sb.append("\ufdea"); + sb.append("\230"); + sb.append("\ufdea"); + sb.append("\231"); + sb.append("\ufdea"); + sb.append("\232"); + sb.append("\ufdea"); + sb.append("\242"); + sb.append("\ufdea"); + sb.append("\243"); + sb.append("\ufdea"); + sb.append("\245"); + sb.append("\ufdea"); + sb.append("\246"); + sb.append("\ufdea"); + sb.append("\251"); + sb.append("\ufdea"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\012"); + sb.append("\065"); + sb.append("\uff2b"); + sb.append("\223"); + sb.append("\uff2b"); + sb.append("\224"); + sb.append("\uff2b"); + sb.append("\250"); + sb.append("\uff2b"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\004"); + sb.append("\010"); + sb.append("\uff26"); + sb.append("\001"); + sb.append("\002"); + sb.append("\000"); + sb.append("\004"); + sb.append("\002"); + sb.append("\000"); + sb.append("\001"); + sb.append("\002"); + sb.append(""); + } +} \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable3.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable3.java index b57ec7d8515d..6775e0225821 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable3.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable3.java @@ -4288,11 +4288,9 @@ protected EncodedActionTable3() { sb.append("\001"); sb.append("\002"); sb.append("\000"); - sb.append("\010"); + sb.append("\006"); sb.append("\127"); sb.append("\ufd8d"); - sb.append("\151"); - sb.append("\ufd8d"); sb.append("\231"); sb.append("\ufd8d"); sb.append("\001"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable3() { sb.append("\156"); sb.append("\ufef2"); sb.append("\230"); + sb.append("\ufef2"); + sb.append("\244"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable4.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable4.java index ff9907172591..7381787e3b9b 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable4.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable4.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable4() { sb = new StringBuilder(); sb.append("\ufef2"); - sb.append("\244"); - sb.append("\ufef2"); sb.append("\251"); sb.append("\ufef2"); sb.append("\253"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable4() { sb.append("\150"); sb.append("\ufd36"); sb.append("\151"); + sb.append("\ufd36"); + sb.append("\152"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable5.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable5.java index b0fd325d9784..ef75c2f77e80 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable5.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable5.java @@ -29,8 +29,6 @@ public String getTableData() { protected EncodedActionTable5() { sb = new StringBuilder(); sb.append("\ufd36"); - sb.append("\152"); - sb.append("\ufd36"); sb.append("\153"); sb.append("\ufd36"); sb.append("\154"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable5() { sb.append("\052"); sb.append("\u0167"); sb.append("\053"); + sb.append("\u01a3"); + sb.append("\054"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable6.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable6.java index 65b7aa33f268..6a0bc2a680ee 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable6.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable6.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable6() { sb = new StringBuilder(); - sb.append("\u01a3"); - sb.append("\054"); sb.append("\u01f9"); sb.append("\055"); sb.append("\u0173"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable6() { sb.append("\012"); sb.append("\074"); sb.append("\111"); + sb.append("\u0277"); + sb.append("\121"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable7.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable7.java index 0ff40c5c7958..b7801dcec2ac 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable7.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable7.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable7() { sb = new StringBuilder(); - sb.append("\u0277"); - sb.append("\121"); sb.append("\u0276"); sb.append("\233"); sb.append("\151"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable7() { sb.append("\102"); sb.append("\040"); sb.append("\103"); + sb.append("\143"); + sb.append("\104"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable8.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable8.java index a3d0611267ee..8a13229e2491 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable8.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable8.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable8() { sb = new StringBuilder(); - sb.append("\143"); - sb.append("\104"); sb.append("\116"); sb.append("\105"); sb.append("\140"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable8() { sb.append("\012"); sb.append("\074"); sb.append("\015"); + sb.append("\031"); + sb.append("\016"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable9.java b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable9.java index 94e071775cd5..2674ce02ca38 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable9.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/parser/EncodedActionTable9.java @@ -28,8 +28,6 @@ public String getTableData() { } protected EncodedActionTable9() { sb = new StringBuilder(); - sb.append("\031"); - sb.append("\016"); sb.append("\070"); sb.append("\032"); sb.append("\105"); @@ -4528,5 +4526,7 @@ protected EncodedActionTable9() { sb.append("\012"); sb.append("\uff62"); sb.append("\014"); + sb.append("\uff62"); + sb.append("\015"); } } \ No newline at end of file diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/verification/PHP83UnhandledError.java b/php/php.editor/src/org/netbeans/modules/php/editor/verification/PHP83UnhandledError.java index 3dde38df5523..8048504a9919 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/verification/PHP83UnhandledError.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/verification/PHP83UnhandledError.java @@ -27,10 +27,31 @@ import org.netbeans.modules.csl.spi.support.CancelSupport; import org.netbeans.modules.php.api.PhpVersion; import org.netbeans.modules.php.editor.CodeUtils; +import org.netbeans.modules.php.editor.model.impl.Type; import org.netbeans.modules.php.editor.parser.PHPParseResult; import org.netbeans.modules.php.editor.parser.astnodes.ASTNode; +import org.netbeans.modules.php.editor.parser.astnodes.ArrayCreation; +import org.netbeans.modules.php.editor.parser.astnodes.ArrayDimension; +import org.netbeans.modules.php.editor.parser.astnodes.ArrayElement; +import org.netbeans.modules.php.editor.parser.astnodes.Assignment; +import org.netbeans.modules.php.editor.parser.astnodes.ClassInstanceCreation; +import org.netbeans.modules.php.editor.parser.astnodes.ClassName; +import org.netbeans.modules.php.editor.parser.astnodes.ConditionalExpression; import org.netbeans.modules.php.editor.parser.astnodes.ConstantDeclaration; +import org.netbeans.modules.php.editor.parser.astnodes.ConstantVariable; +import org.netbeans.modules.php.editor.parser.astnodes.Expression; +import org.netbeans.modules.php.editor.parser.astnodes.ExpressionArrayAccess; +import org.netbeans.modules.php.editor.parser.astnodes.FieldAccess; +import org.netbeans.modules.php.editor.parser.astnodes.Identifier; +import org.netbeans.modules.php.editor.parser.astnodes.InfixExpression; +import org.netbeans.modules.php.editor.parser.astnodes.NamespaceName; +import org.netbeans.modules.php.editor.parser.astnodes.ParenthesisExpression; +import org.netbeans.modules.php.editor.parser.astnodes.Quote; +import org.netbeans.modules.php.editor.parser.astnodes.Scalar; import org.netbeans.modules.php.editor.parser.astnodes.StaticConstantAccess; +import org.netbeans.modules.php.editor.parser.astnodes.StaticStatement; +import org.netbeans.modules.php.editor.parser.astnodes.UnaryOperation; +import org.netbeans.modules.php.editor.parser.astnodes.VariableBase; import org.netbeans.modules.php.editor.parser.astnodes.visitors.DefaultVisitor; import org.openide.filesystems.FileObject; import org.openide.util.NbBundle; @@ -105,6 +126,146 @@ public void visit(ConstantDeclaration node) { super.visit(node); } + @Override + public void visit(StaticStatement node) { + if (CancelSupport.getDefault().isCancelled()) { + return; + } + // static $example = 1, $example2 = $variable; + for (Expression expression : node.getExpressions()) { + if (CancelSupport.getDefault().isCancelled()) { + return; + } + if (expression instanceof Assignment) { + Assignment assignment = (Assignment) expression; + Expression rightHandSide = assignment.getRightHandSide(); + if (!isStaticScalarValueExpression(rightHandSide)) { + createError(node); + break; + } + } + } + super.visit(node); + } + + private boolean isStaticScalarValueExpression(Expression expression) { + if (expression != null + && !isStaticScalarValue(expression) + && !isStaticOperation(expression)) { + return false; + } + if (isStaticOperation(expression)) { + if (expression instanceof InfixExpression) { + InfixExpression infixExpression = (InfixExpression) expression; + if (!isStaticScalarValueExpression(infixExpression.getLeft()) + || !isStaticScalarValueExpression(infixExpression.getRight())) { + // e.g. $a + 1; example() * 3; "string" . $string; + return false; + } + } else if (expression instanceof UnaryOperation) { + UnaryOperation unaryOperation = (UnaryOperation) expression; + if (!isStaticScalarValueExpression(unaryOperation.getExpression())) { + // e.g. !$variable; + return false; + } + } else if (expression instanceof ConditionalExpression) { + ConditionalExpression conditionalExpression = (ConditionalExpression) expression; + if (!isStaticScalarValueExpression(conditionalExpression.getIfTrue()) + || !isStaticScalarValueExpression(conditionalExpression.getIfFalse()) + || !isStaticScalarValueExpression(conditionalExpression.getCondition())) { + // e.g. $a > 0 ? $a : -$a; + return false; + } + } else if (expression instanceof ArrayCreation) { + ArrayCreation arrayCreation = (ArrayCreation) expression; + List elements = arrayCreation.getElements(); + for (ArrayElement element : elements) { + if (!isStaticScalarValueExpression(element.getKey()) + || !isStaticScalarValueExpression(element.getValue())) { + // e.g. ["a" => $variable]; + return false; + } + } + } else if (expression instanceof ExpressionArrayAccess) { + // e.g. CONSTANT[1]; "string"[2]; [1, 2, 3][0]; + // CONSTANT[1][2]; MyClass::CONSTANT[1]; \Foo\CONSTANT[0]; namespace\CONSTANT[0]; + ExpressionArrayAccess expressionArrayAccess = (ExpressionArrayAccess) expression; + Expression expr = expressionArrayAccess.getExpression(); + ArrayDimension dimension = expressionArrayAccess.getDimension(); + if ((!(expr instanceof Identifier) && !isStaticScalarValueExpression(expr)) // C[1] + || !isStaticScalarValueExpression(dimension.getIndex())) { + return false; + } + } + } else if (isNewExpression(expression)) { + ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression; + ClassName className = classInstanceCreation.getClassName(); + if (Type.STATIC.equals(CodeUtils.extractClassName(className)) + || !isStaticScalarValueExpression(className.getName()) + || (className.getName() instanceof ParenthesisExpression)) { + // e.g. new static; new (Example); new $variable; + return false; + } + for (Expression param : classInstanceCreation.ctorParams()) { + if (!isStaticScalarValueExpression(param)) { + // e.g. new stdClass($variable); + return false; + } + } + } else if (expression instanceof FieldAccess) { + FieldAccess fieldAccess = (FieldAccess) expression; + VariableBase dispatcher = fieldAccess.getDispatcher(); + // e.g. + // OK: C->name; E::Case1->name; + if (!(dispatcher instanceof ConstantVariable) + && !(dispatcher instanceof StaticConstantAccess)) { + // NG: $this->field; + return false; + } + } else if (expression instanceof StaticConstantAccess) { + StaticConstantAccess staticConstantAccess = (StaticConstantAccess) expression; + Expression constant = staticConstantAccess.getConstant(); + if (!(constant instanceof Identifier) && !isStaticScalarValueExpression(constant)) { + // e.g. Example::CONSTANT[$index]; + return false; + } + } else if (expression instanceof Quote) { + Quote quote = (Quote) expression; + for (Expression expr : quote.getExpressions()) { + if (!isStaticScalarValueExpression(expr)) { + // e.g. + // static $example = << + + + class + + + Example + + + { + + + private + + + int + + + $field + + + = + + + 1 + + + ; + + + public + + + function + + + method + + + ( + + + ) + + + : + + + int + + + { + + + return + + + 1 + + + ; + + + } + + + public + + + function + + + run + + + ( + + + int + + + $param1 + + + ) + + + : + + + void + + + { + + + static + + + $example1 + + + = + + + rand + + + ( + + + ) + + + ; + + + static + + + $example2 + + + = + + + $param1 + + + ; + + + static + + + $example3 + + + = + + + $this + + + -> + + + field + + + ; + + + static + + + $example4 + + + = + + + $this + + + -> + + + method + + + ( + + + ) + + + ; + + + static + + + $example5 + + + = + + + new + + + class + + + ( + + + ) + + + { + + + } + + + ; + + + static + + + $example6 + + + = + + + new + + + stdClass + + + ( + + + ... + + + [ + + + 0 + + + ] + + + ) + + + ; + + + static + + + $example6 + + + = + + + new + + + stdClass + + + ( + + + $param1 + + + ) + + + ; + + + static + + + $example7 + + + = + + + new + + + ( + + + Test + + + ) + + + ; + + + static + + + $example8 + + + = + + + new + + + static + + + ; + + + static + + + $example9 + + + = + + + $param1 + + + <= + + + 100 + + + ? + + + run + + + ( + + + $param1 + + + + + + + 1 + + + ) + + + : + + + " + + + Test + + + $param1 + + + " + + + ; + + + static + + + $example10 + + + = + + + rand + + + ( + + + ) + + + , + + + $example11 + + + = + + + rand + + + ( + + + ) + + + ; + + + } + + + } + + + $variable + + + = + + + 1 + + + ; + + + static + + + $example1 + + + = + + + rand + + + ( + + + ) + + + ; + + + static + + + $example2 + + + = + + + $variable + + + ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/SanitizeSourceTest/sanitize/arbitraryStaticVariableInitializers01.pass b/php/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/SanitizeSourceTest/sanitize/arbitraryStaticVariableInitializers01.pass new file mode 100644 index 000000000000..8006118a3811 --- /dev/null +++ b/php/php.editor/test/unit/data/goldenfiles/org/netbeans/modules/php/editor/parser/SanitizeSourceTest/sanitize/arbitraryStaticVariableInitializers01.pass @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php new file mode 100644 index 000000000000..bc28a9771532 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php @@ -0,0 +1,47 @@ +field; + static $example4 = $this->method(); + static $example5 = new class() {}; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = test(), $example11 = test(); + } +} + +$variable = 1; +static $example1 = test(); +static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01.completion new file mode 100644 index 000000000000..71f1bbcc2910 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example1 = te|st(); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD test() [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02.completion new file mode 100644 index 000000000000..d424df3d0fc4 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example2 = $para|m1; +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +VARIABLE int $param1 [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03.completion new file mode 100644 index 000000000000..35c3c8655457 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example3 = $this->fi|eld; +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +VARIABLE int field [PRIVATE] Example diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04.completion new file mode 100644 index 000000000000..6be54f3c54ff --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example4 = $this->metho|d(); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD method() [PUBLIC] Example diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_05.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_05.completion new file mode 100644 index 000000000000..37eefbf8044e --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_05.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example6 = new stdClass($param|1); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +VARIABLE int $param1 [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_06.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_06.completion new file mode 100644 index 000000000000..7b053d3f54f2 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_06.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example9 = $param1 <= 100 ? ru|n($param1 + 1) : "Test $param1"; +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD run(int $param1) [PUBLIC] Example diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_07.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_07.completion new file mode 100644 index 000000000000..c7516ffa8ddf --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_07.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param|1"; +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +VARIABLE int $param1 [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_08.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_08.completion new file mode 100644 index 000000000000..6aad93fe616a --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_08.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example10 = tes|t(), $example11 = test(); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD test() [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_09.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_09.completion new file mode 100644 index 000000000000..e0e0e372d27c --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_09.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example10 = test(), $example11 = tes|t(); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD test() [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_10.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_10.completion new file mode 100644 index 000000000000..71f1bbcc2910 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_10.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example1 = te|st(); +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +METHOD test() [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_11.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_11.completion new file mode 100644 index 000000000000..e9fa0ead848e --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/completion/lib/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_11.completion @@ -0,0 +1,4 @@ +Code completion result for source line: +static $example2 = $variab|le; +(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true) +VARIABLE int $variable [PUBLIC] testArbitraryStaticVariableInitializers.php diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php b/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php new file mode 100644 index 000000000000..dfb9dcbd6ca5 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php @@ -0,0 +1,45 @@ +field; + static $example4 = $this-> method(); + static $example5 = new class() {}; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = rand(), $example11 = rand(); + } +} + +$variable = 1; + static $example1 = rand(); + static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php.testArbitraryStaticVariableInitializers_01a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php.testArbitraryStaticVariableInitializers_01a.formatted new file mode 100644 index 000000000000..f3ff39044260 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php.testArbitraryStaticVariableInitializers_01a.formatted @@ -0,0 +1,49 @@ +field; + static $example4 = $this->method(); + static $example5 = new class() { + + }; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = rand(), $example11 = rand(); + } +} + +$variable = 1; +static $example1 = rand(); +static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/gotodeclaration/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php b/php/php.editor/test/unit/data/testfiles/gotodeclaration/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php new file mode 100644 index 000000000000..9f8b8f6e44a0 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/gotodeclaration/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php @@ -0,0 +1,45 @@ +field; + static $example4 = $this->method(); + static $example5 = new class() {}; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = rand(), $example11 = rand(); + } +} + +$variable = 1; +static $example1 = rand(); +static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php new file mode 100644 index 000000000000..9f8b8f6e44a0 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php @@ -0,0 +1,45 @@ +field; + static $example4 = $this->method(); + static $example5 = new class() {}; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = rand(), $example11 = rand(); + } +} + +$variable = 1; +static $example1 = rand(); +static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01a.occurrences new file mode 100644 index 000000000000..4fd09a6bc2a5 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01a.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:par^am1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:param1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:param1<|); + static $example9 = $|>MARK_OCCURRENCES:param1<| <= 100 ? run($|>MARK_OCCURRENCES:param1<| + 1) : "Test $|>MARK_OCCURRENCES:param1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01b.occurrences new file mode 100644 index 000000000000..c2dfd322962b --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01b.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:param1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:para^m1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:param1<|); + static $example9 = $|>MARK_OCCURRENCES:param1<| <= 100 ? run($|>MARK_OCCURRENCES:param1<| + 1) : "Test $|>MARK_OCCURRENCES:param1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01c.occurrences new file mode 100644 index 000000000000..f8decf9ca525 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01c.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:param1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:param1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:para^m1<|); + static $example9 = $|>MARK_OCCURRENCES:param1<| <= 100 ? run($|>MARK_OCCURRENCES:param1<| + 1) : "Test $|>MARK_OCCURRENCES:param1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01d.occurrences new file mode 100644 index 000000000000..d7366951d0e9 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01d.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:param1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:param1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:param1<|); + static $example9 = $|>MARK_OCCURRENCES:para^m1<| <= 100 ? run($|>MARK_OCCURRENCES:param1<| + 1) : "Test $|>MARK_OCCURRENCES:param1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01e.occurrences new file mode 100644 index 000000000000..6e975b4f5f04 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01e.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:param1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:param1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:param1<|); + static $example9 = $|>MARK_OCCURRENCES:param1<| <= 100 ? run($|>MARK_OCCURRENCES:p^aram1<| + 1) : "Test $|>MARK_OCCURRENCES:param1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01f.occurrences new file mode 100644 index 000000000000..97efffeaa602 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_01f.occurrences @@ -0,0 +1,4 @@ + public function run(int $|>MARK_OCCURRENCES:param1<|) : void { + static $example2 = $|>MARK_OCCURRENCES:param1<|; + static $example6 = new stdClass($|>MARK_OCCURRENCES:param1<|); + static $example9 = $|>MARK_OCCURRENCES:param1<| <= 100 ? run($|>MARK_OCCURRENCES:param1<| + 1) : "Test $|>MARK_OCCURRENCES:para^m1<|"; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02a.occurrences new file mode 100644 index 000000000000..6ecc80a811da --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02a.occurrences @@ -0,0 +1,2 @@ + private int $|>MARK_OCCURRENCES:fie^ld<| = 1; + static $example3 = $this->|>MARK_OCCURRENCES:field<|; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02b.occurrences new file mode 100644 index 000000000000..e1d8e94533b2 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_02b.occurrences @@ -0,0 +1,2 @@ + private int $|>MARK_OCCURRENCES:field<| = 1; + static $example3 = $this->|>MARK_OCCURRENCES:fiel^d<|; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03a.occurrences new file mode 100644 index 000000000000..37ebfaef4103 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03a.occurrences @@ -0,0 +1,2 @@ + public function |>MARK_OCCURRENCES:met^hod<|(): int { + static $example4 = $this->|>MARK_OCCURRENCES:method<|(); diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03b.occurrences new file mode 100644 index 000000000000..5c2db7adcfc2 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_03b.occurrences @@ -0,0 +1,2 @@ + public function |>MARK_OCCURRENCES:method<|(): int { + static $example4 = $this->|>MARK_OCCURRENCES:meth^od<|(); diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04a.occurrences new file mode 100644 index 000000000000..fdd4d0344a84 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04a.occurrences @@ -0,0 +1,2 @@ +$|>MARK_OCCURRENCES:vari^able<| = 1; +static $example2 = $|>MARK_OCCURRENCES:variable<|; diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04b.occurrences new file mode 100644 index 000000000000..78cc6b57ecaf --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php83/testArbitraryStaticVariableInitializers/testArbitraryStaticVariableInitializers.php.testArbitraryStaticVariableInitializers_04b.occurrences @@ -0,0 +1,2 @@ +$|>MARK_OCCURRENCES:variable<| = 1; +static $example2 = $|>MARK_OCCURRENCES:varia^ble<|; diff --git a/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php b/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php new file mode 100644 index 000000000000..9f8b8f6e44a0 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php @@ -0,0 +1,45 @@ +field; + static $example4 = $this->method(); + static $example5 = new class() {}; + static $example6 = new stdClass(...[0]); + static $example6 = new stdClass($param1); + static $example7 = new (Test); + static $example8 = new static; + static $example9 = $param1 <= 100 ? run($param1 + 1) : "Test $param1"; + static $example10 = rand(), $example11 = rand(); + } +} + +$variable = 1; +static $example1 = rand(); +static $example2 = $variable; diff --git a/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php.errors b/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php.errors new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php.errors @@ -0,0 +1 @@ + diff --git a/php/php.editor/test/unit/data/testfiles/sanitize/arbitraryStaticVariableInitializers01.php b/php/php.editor/test/unit/data/testfiles/sanitize/arbitraryStaticVariableInitializers01.php new file mode 100644 index 000000000000..a02e9c94ab9d --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/sanitize/arbitraryStaticVariableInitializers01.php @@ -0,0 +1,25 @@ +quote()}'"; + } +} diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP83CodeCompletionTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP83CodeCompletionTest.java index c50329786616..c1987dcdddce 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP83CodeCompletionTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHP83CodeCompletionTest.java @@ -476,6 +476,50 @@ public void testTypedClassConstantsTypingInterface10() throws Exception { checkCompletion("typedClassConstantsTypingInterface10", " public const (A&B)|(A&C) CONST_NAME = ^"); } + public void testArbitraryStaticVariableInitializers_01() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example1 = te^st();"); + } + + public void testArbitraryStaticVariableInitializers_02() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example2 = $para^m1;"); + } + + public void testArbitraryStaticVariableInitializers_03() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example3 = $this->fi^eld;"); + } + + public void testArbitraryStaticVariableInitializers_04() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example4 = $this->metho^d();"); + } + + public void testArbitraryStaticVariableInitializers_05() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example6 = new stdClass($param^1);"); + } + + public void testArbitraryStaticVariableInitializers_06() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example9 = $param1 <= 100 ? ru^n($param1 + 1) : \"Test $param1\";"); + } + + public void testArbitraryStaticVariableInitializers_07() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example9 = $param1 <= 100 ? run($param1 + 1) : \"Test $param^1\";"); + } + + public void testArbitraryStaticVariableInitializers_08() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example10 = tes^t(), $example11 = test();"); + } + + public void testArbitraryStaticVariableInitializers_09() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", " static $example10 = test(), $example11 = tes^t();"); + } + + public void testArbitraryStaticVariableInitializers_10() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", "static $example1 = te^st();"); + } + + public void testArbitraryStaticVariableInitializers_11() throws Exception { + checkCompletion("testArbitraryStaticVariableInitializers", "static $example2 = $variab^le;"); + } + public void testOverrideAttribute01() throws Exception { checkCompletionCustomTemplateResult(getTestPath("testOverrideAttribute01"), " test^", new DefaultFilter(PhpVersion.PHP_83, "test"), true); @@ -505,5 +549,4 @@ public void testOverrideAttributeEnum01_PHP82() throws Exception { checkCompletionCustomTemplateResult(getTestPath("testOverrideAttributeEnum01"), " test^", new DefaultFilter(PhpVersion.PHP_82, "test"), true); } - } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP83Test.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP83Test.java index 69c6051c2172..12df8d0f47db 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP83Test.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP83Test.java @@ -369,7 +369,35 @@ public void testTypedClassConstants_26a() throws Exception { checkDeclaration(getTestPath(), " public const static A = EnumT^est::Test; // enum", "enum ^EnumTest {"); } - public void testTypedClassConstants_01() throws Exception { -// checkDeclaration(getTestPath(), "", ""); + public void testArbitraryStaticVariableInitializers_01a() throws Exception { + checkDeclaration(getTestPath(), " static $example2 = $pa^ram1;", " public function run(int $^param1) : void {"); + } + + public void testArbitraryStaticVariableInitializers_01b() throws Exception { + checkDeclaration(getTestPath(), " static $example6 = new stdClass($para^m1);", " public function run(int $^param1) : void {"); + } + + public void testArbitraryStaticVariableInitializers_01c() throws Exception { + checkDeclaration(getTestPath(), " static $example9 = $par^am1 <= 100 ? run($param1 + 1) : \"Test $param1\";", " public function run(int $^param1) : void {"); + } + + public void testArbitraryStaticVariableInitializers_01d() throws Exception { + checkDeclaration(getTestPath(), " static $example9 = $param1 <= 100 ? run($param^1 + 1) : \"Test $param1\";", " public function run(int $^param1) : void {"); + } + + public void testArbitraryStaticVariableInitializers_01e() throws Exception { + checkDeclaration(getTestPath(), " static $example9 = $param1 <= 100 ? run($param1 + 1) : \"Test $par^am1\";", " public function run(int $^param1) : void {"); + } + + public void testArbitraryStaticVariableInitializers_02a() throws Exception { + checkDeclaration(getTestPath(), " static $example3 = $this->fie^ld;", " private int $^field = 1;"); + } + + public void testArbitraryStaticVariableInitializers_03a() throws Exception { + checkDeclaration(getTestPath(), " static $example4 = $this->meth^od();", " public function ^method(): int {"); + } + + public void testArbitraryStaticVariableInitializers_04a() throws Exception { + checkDeclaration(getTestPath(), "static $example2 = $varia^ble;", "$^variable = 1;"); } } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP83Test.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP83Test.java index 1ae59db1446a..4de8be8cd635 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP83Test.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP83Test.java @@ -588,4 +588,52 @@ public void testTypedClassConstants_23a() throws Exception { public void testTypedClassConstants_23b() throws Exception { checkOccurrences(getTestPath(), " case T^est;", true); } + + public void testArbitraryStaticVariableInitializers_01a() throws Exception { + checkOccurrences(getTestPath(), " public function run(int $par^am1) : void {", true); + } + + public void testArbitraryStaticVariableInitializers_01b() throws Exception { + checkOccurrences(getTestPath(), " static $example2 = $para^m1;", true); + } + + public void testArbitraryStaticVariableInitializers_01c() throws Exception { + checkOccurrences(getTestPath(), " static $example6 = new stdClass($para^m1);", true); + } + + public void testArbitraryStaticVariableInitializers_01d() throws Exception { + checkOccurrences(getTestPath(), " static $example9 = $para^m1 <= 100 ? run($param1 + 1) : \"Test $param1\";", true); + } + + public void testArbitraryStaticVariableInitializers_01e() throws Exception { + checkOccurrences(getTestPath(), " static $example9 = $param1 <= 100 ? run($p^aram1 + 1) : \"Test $param1\";", true); + } + + public void testArbitraryStaticVariableInitializers_01f() throws Exception { + checkOccurrences(getTestPath(), " static $example9 = $param1 <= 100 ? run($param1 + 1) : \"Test $para^m1\";", true); + } + + public void testArbitraryStaticVariableInitializers_02a() throws Exception { + checkOccurrences(getTestPath(), " private int $fie^ld = 1;", true); + } + + public void testArbitraryStaticVariableInitializers_02b() throws Exception { + checkOccurrences(getTestPath(), " static $example3 = $this->fiel^d;", true); + } + + public void testArbitraryStaticVariableInitializers_03a() throws Exception { + checkOccurrences(getTestPath(), " public function met^hod(): int {", true); + } + + public void testArbitraryStaticVariableInitializers_03b() throws Exception { + checkOccurrences(getTestPath(), " static $example4 = $this->meth^od();", true); + } + + public void testArbitraryStaticVariableInitializers_04a() throws Exception { + checkOccurrences(getTestPath(), "$vari^able = 1;", true); + } + + public void testArbitraryStaticVariableInitializers_04b() throws Exception { + checkOccurrences(getTestPath(), "static $example2 = $varia^ble;", true); + } } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java index 5765a7c50708..db211dd07d6a 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTest.java @@ -1139,6 +1139,11 @@ public void testTypedClassConstants_02() throws Exception { reformatFileContents("testfiles/formatting/php83/typedClassConstants_02.php", options, false, true); } + public void testArbitraryStaticVariableInitializers_01a() throws Exception { + HashMap options = new HashMap<>(FmtOptions.getDefaults()); + reformatFileContents("testfiles/formatting/php83/arbitraryStaticVariableInitializers_01.php", options, false, true); + } + public void testGH7185_01() throws Exception { HashMap options = new HashMap<>(FmtOptions.getDefaults()); reformatFileContents("testfiles/formatting/issueGH7185_01.php", options, false, false); diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java index b08041e58506..18795622486e 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/ASTPHP5ParserTest.java @@ -1531,6 +1531,10 @@ public void testIssueGH6075_01() throws Exception { } // PHP 8.3 + public void testArbitraryStaticVariableInitializers_01() throws Exception { + performTest("parser/php83/arbitraryStaticVariableInitializers_01"); + } + public void testDynamicClassConstantFetch_01() throws Exception { performTest("parser/php83/dynamicClassConstantFetch_01"); } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java index 24f1fb0ff561..563bec9417ce 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/PhpParserErrorTest.java @@ -1449,6 +1449,10 @@ public void testIssueGH5933_01() throws Exception { } // PHP 8.3 + public void testArbitraryStaticVariableInitializers_01() throws Exception { + checkErrors("testfiles/parser/php83/arbitraryStaticVariableInitializers_01.php"); + } + public void testDynamicClassConstantFetch_01() throws Exception { checkErrors("testfiles/parser/php83/dynamicClassConstantFetch_01.php"); } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeCurlyTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeCurlyTest.java index 3b7bad422787..128562cbbbdf 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeCurlyTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeCurlyTest.java @@ -19,8 +19,10 @@ package org.netbeans.modules.php.editor.parser; +import java.io.StringReader; import org.netbeans.editor.BaseDocument; import org.netbeans.modules.parsing.api.Source; +import org.netbeans.modules.php.api.util.FileUtils; import org.netbeans.modules.php.editor.PHPTestBase; import org.netbeans.modules.php.editor.parser.GSFPHPParser.Context; @@ -232,14 +234,31 @@ public void testCurly08() throws Exception { execute(orig, expected, 0); } + public void testCurlyBalance01() throws Exception { + String source = "" + + "quote()}'\";\n" + + " }\n" + + "}"; + checkCurlyBalance(source, 0); + } + private void execute(String original, String expected, int expectedDelta) throws Exception { int originalLength = original.length(); GSFPHPParser parser = new GSFPHPParser(); - BaseDocument doc = new BaseDocument(true, "text/x-php5"); + BaseDocument doc = new BaseDocument(true, FileUtils.PHP_MIME_TYPE); doc.insertString(0, original, null); Context context = new GSFPHPParser.Context(Source.create(doc).createSnapshot() , -1); parser.sanitizeCurly(context); assertEquals(expected, context.getSanitizedSource()); assertEquals(originalLength+expectedDelta, context.getSanitizedSource().length()); } + + private void checkCurlyBalance(String source, int expectedBalance) throws Exception { + ASTPHP5Scanner scanner = new ASTPHP5Scanner(new StringReader(source), false, false); + assertEquals(expectedBalance, scanner.getCurlyBalance()); + } } diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeSourceTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeSourceTest.java index 06127758b34b..ad6aeb47e653 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeSourceTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/parser/SanitizeSourceTest.java @@ -255,6 +255,10 @@ public void testConstructorPropertyPromotionParameter01() throws Exception { performTest("sanitize/constructorPropertyPromotionParameter01"); } + public void testArbitraryStaticVariableInitializers01() throws Exception { + performTest("sanitize/arbitraryStaticVariableInitializers01"); + } + protected String getTestResult(String filename) throws Exception { return getTestResult(filename, null); } diff --git a/php/php.editor/tools/ASTPHP5Parser.cup b/php/php.editor/tools/ASTPHP5Parser.cup index 7ed74f027982..d7cde1f693c1 100644 --- a/php/php.editor/tools/ASTPHP5Parser.cup +++ b/php/php.editor/tools/ASTPHP5Parser.cup @@ -2886,7 +2886,7 @@ static_var_list:list T_COMMA T_VARIABLE:var RESULT = list; :} -| static_var_list:list T_COMMA T_VARIABLE:var T_EQUAL static_scalar:expr +| static_var_list:list T_COMMA T_VARIABLE:var T_EQUAL expr:expr {: Variable v = new Variable(varleft, varright, var); Assignment assignment = new Assignment(varleft, exprright, v, Assignment.Type.EQUAL, expr); @@ -2902,7 +2902,7 @@ static_var_list:list T_COMMA T_VARIABLE:var RESULT = list; :} -| T_VARIABLE:var T_EQUAL static_scalar_with_class_instance:expr +| T_VARIABLE:var T_EQUAL expr:expr {: Variable v = new Variable(varleft, varright, var); Assignment assignment = new Assignment(varleft, exprright, v, Assignment.Type.EQUAL, expr); diff --git a/php/php.editor/tools/ASTPHP5Scanner.flex b/php/php.editor/tools/ASTPHP5Scanner.flex index 3d128d1d0c59..4ce0b9ea3dac 100644 --- a/php/php.editor/tools/ASTPHP5Scanner.flex +++ b/php/php.editor/tools/ASTPHP5Scanner.flex @@ -970,6 +970,7 @@ NOWDOC_CHARS=({NEWLINE}*(([^a-zA-Z_\x7f-\xff\n\r][^\n\r]*)|({LABEL}[^a-zA-Z0-9_\ "${" { pushState(ST_LOOKING_FOR_VARNAME); + bracket++; return createSymbol(ASTPHP5Symbols.T_DOLLAR_OPEN_CURLY_BRACES); }