pub enum ExprKind {
Show 53 variants
Int(i64),
Float(f64),
String(Box<str>),
InterpolatedString(Box<[StringPart]>),
Heredoc {
label: Box<str>,
parts: Box<[StringPart]>,
},
Nowdoc {
label: Box<str>,
value: Box<str>,
},
ShellExec(Box<[StringPart]>),
Bool(bool),
Null,
Variable(Box<str>),
VariableVariable(Box<Expr>),
Identifier(Box<str>),
Assign(AssignExpr),
Binary(BinaryExpr),
UnaryPrefix(UnaryPrefixExpr),
UnaryPostfix(UnaryPostfixExpr),
Ternary(TernaryExpr),
NullCoalesce(NullCoalesceExpr),
FunctionCall(FunctionCallExpr),
Array(Box<[ArrayElement]>),
ArrayAccess(ArrayAccessExpr),
Print(Box<Expr>),
Parenthesized(Box<Expr>),
Cast(CastKind, Box<Expr>),
ErrorSuppress(Box<Expr>),
Isset(Box<[Expr]>),
Empty(Box<Expr>),
Include(IncludeKind, Box<Expr>),
Eval(Box<Expr>),
Exit(Option<Box<Expr>>),
MagicConst(MagicConstKind),
Clone(Box<Expr>),
CloneWith(Box<Expr>, Box<Expr>),
New(NewExpr),
PropertyAccess(PropertyAccessExpr),
NullsafePropertyAccess(PropertyAccessExpr),
MethodCall(Box<MethodCallExpr>),
NullsafeMethodCall(Box<MethodCallExpr>),
StaticPropertyAccess(StaticAccessExpr),
StaticMethodCall(Box<StaticMethodCallExpr>),
StaticDynMethodCall(Box<StaticDynMethodCallExpr>),
ClassConstAccess(StaticAccessExpr),
ClassConstAccessDynamic {
class: Box<Expr>,
member: Box<Expr>,
},
StaticPropertyAccessDynamic {
class: Box<Expr>,
member: Box<Expr>,
},
Closure(Box<ClosureExpr>),
ArrowFunction(Box<ArrowFunctionExpr>),
Match(MatchExpr),
ThrowExpr(Box<Expr>),
Yield(YieldExpr),
AnonymousClass(Box<ClassDecl>),
CallableCreate(CallableCreateExpr),
Omit,
Error,
}Expand description
The kind of an expression.
Variants§
Int(i64)
Integer literal.
Float(f64)
Float literal.
String(Box<str>)
String literal without interpolation.
InterpolatedString(Box<[StringPart]>)
Double-quoted string with interpolation.
Heredoc
Heredoc string.
Nowdoc
Nowdoc string.
ShellExec(Box<[StringPart]>)
Backtick shell command.
Bool(bool)
true or false.
Null
null.
Variable(Box<str>)
Variable name without $.
VariableVariable(Box<Expr>)
$$x or ${expr}.
Identifier(Box<str>)
Bare identifier such as a constant name.
Assign(AssignExpr)
Assignment.
Binary(BinaryExpr)
Binary operation.
UnaryPrefix(UnaryPrefixExpr)
Prefix unary operation.
UnaryPostfix(UnaryPostfixExpr)
Postfix unary operation.
Ternary(TernaryExpr)
Ternary conditional.
NullCoalesce(NullCoalesceExpr)
?? expression.
FunctionCall(FunctionCallExpr)
Function call.
Array(Box<[ArrayElement]>)
Array literal.
ArrayAccess(ArrayAccessExpr)
Array offset access.
Print(Box<Expr>)
print expression.
Parenthesized(Box<Expr>)
Parenthesized expression.
Cast(CastKind, Box<Expr>)
Type cast.
ErrorSuppress(Box<Expr>)
@ error suppression.
Isset(Box<[Expr]>)
isset(...).
Empty(Box<Expr>)
empty(...).
Include(IncludeKind, Box<Expr>)
include/require variant.
Eval(Box<Expr>)
eval(...).
Exit(Option<Box<Expr>>)
exit/die with optional argument.
MagicConst(MagicConstKind)
Magic constant such as __LINE__.
Clone(Box<Expr>)
clone expression.
CloneWith(Box<Expr>, Box<Expr>)
clone with property overrides.
New(NewExpr)
new expression.
PropertyAccess(PropertyAccessExpr)
-> property access.
NullsafePropertyAccess(PropertyAccessExpr)
?-> property access.
MethodCall(Box<MethodCallExpr>)
-> method call.
NullsafeMethodCall(Box<MethodCallExpr>)
?-> method call.
StaticPropertyAccess(StaticAccessExpr)
Class::$prop access.
StaticMethodCall(Box<StaticMethodCallExpr>)
Class::method() call.
StaticDynMethodCall(Box<StaticDynMethodCallExpr>)
Class::$method() call.
ClassConstAccess(StaticAccessExpr)
Class::CONST access.
ClassConstAccessDynamic
Class::{expr} constant access.
StaticPropertyAccessDynamic
Class::$$member property access.
Closure(Box<ClosureExpr>)
Anonymous function.
ArrowFunction(Box<ArrowFunctionExpr>)
Arrow function.
Match(MatchExpr)
match expression.
ThrowExpr(Box<Expr>)
throw used as an expression.
Yield(YieldExpr)
yield expression.
AnonymousClass(Box<ClassDecl>)
new class { ... }.
CallableCreate(CallableCreateExpr)
First-class callable syntax.
Omit
Skipped slot in a list destructuring pattern.
Error
Placeholder for an expression that failed to parse.