I use @ instead of #[] as attribute token. attribute use whitespace marks are
closed. Of course you can start with @@ or #, other.
error control use @@ instead of @, add T_SILENCE token
new syntax:
one attribute: @attribute{WHITESPACE} @otherAttribute(12){WHITESPACE}
group attribute: @attribute1(1, 2),attribute2(343, 43)@attibute3(33)[WHITESPACE]
current syntax:
one attribute: #[attribute()] #[otherAttribute()]
group attribute: #[attribute1(1, 2),attribute2(343,),attibute3(33)]
below is comparison
new syntax:
@AttrA@AttrB(112, 334),AttrC
@AttrD
class A {
@AttrE
@AttrF @AttrG
public $a;
@AttrM
public function m1(@AttrParma(1) $c) {}
}
$ab = @fn(1) fn()=> 1+2;
-----------
current syntax:
#[AttrA,AttrB(112, 334),AttrC]
#[AttrD]
class A {
#[AttrE]
#[AttrF] #[AttrG]
public $a;
#[AttrM]
public function m1(#[AttrParma(1)] $c) {}
}
$ab = #[fn(1)] fn()=>1+2;
my implemented:
https://github.com/chopins/php-src/tree/new-syntax/attribute
Other new syntax implemented (Verification of feasibility) :
https://github.com/chopins/php-src/blob/php-alternative-syntax/alternative-syntax.md
Regards
Chopin Xiao